導航:首頁 > 編程語言 > java圖片轉byte

java圖片轉byte

發布時間:2025-09-29 20:05:30

1. java:為什麼傳輸圖片是常用base64字元串轉碼,而不是直接傳輸byte[]呢求解

先說說base64吧:對於圖片來說,一個位元組佔八位,如果都換成byte[]的話,會很長,不便於傳輸,那麼就把沒6個位元組來對應一個新的字元(如010011是19,對應base64編碼的T),,所以這個目的主要是精簡數據,便於傳輸;
另外常用的用途是:做不嚴格的加密用,比如常見的磁力鏈接,你懂的;因為它相對於嚴格加密省時省力,速度快,況且可恢復(如果用MD5就不行)

2. java中如何將位元組數組轉化成圖片

在Java中,將位元組數組轉換成圖片,可以通過File和IO操作來實現。下面是一個具體的例子:

假設我們有一個名為byte2image的方法,該方法接收一個位元組數組和一個路徑作為參數。該方法的功能是將位元組數組轉換成圖片並保存到指定路徑。

首先,我們需要檢查輸入的位元組數組是否為空。如果位元組數組的長度小於3或路徑為空,則直接返回。接下來,我們使用FileImageOutputStream類打開一個輸入流,該類用於將位元組數組寫入文件。

然後,我們通過調用write方法將位元組數組寫入硬碟。這個方法接收三個參數:要寫入的位元組數組、開始寫入的起始位置以及要寫入的位元組數。

最後,我們關閉輸入流,並輸出一條成功信息,指示圖片已經成功保存到指定路徑。

在實際操作中,如果出現異常,我們需要捕獲並處理這些異常。這可以通過try-catch塊來實現。如果在轉換過程中出現異常,我們會輸出一條異常信息,並列印堆棧跟蹤,以便於定位問題。

需要注意的是,這種方法適用於將位元組數組轉換為圖片並保存到文件系統中的場景。在實際應用中,可以根據具體需求調整代碼,以適應不同的使用場景。

通過這種方式,我們可以在Java中輕松地將位元組數組轉換為圖片,並將其保存到文件系統中。這對於處理圖像數據或從網路接收圖像數據時非常有用。

3. java把圖片轉換成二進制流

public static void main(String[] args) throws Exception {

File file = new File("d:\L.jpg");//圖片

FileInputStream fis = new FileInputStream(file);//把圖片變成流

FileOutputStream fos = new FileOutputStream(new File("E:\L.jpg")); //把圖片流寫入E盤

byte[] read = new byte[1024]; //每次讀取的位元組 可以自己定義 256 512 1024 2048 等。。。

int len = 0;

while((len = fis.read(read))!= -1){ //讀取變成流的圖片

fos.write(read,0,len);//寫入圖片

}

fis.close();//關閉輸入流

fos.close();//關閉輸出流

}

4. java將 jpg圖像數據讀出來,並用十六進制方式顯示在文本文件中

使用ByteArrayInputStream將文件讀出來,然後轉成byte數組,然後將數組的每一成員轉成十六進制輸出就好了

5. java中如何把一個圖片轉換成二進制流存入到類中啊

1.將Image圖像文件存入到資料庫中

我們知道資料庫里的Image類型的數據是"二進制數據",因此必須將圖像文件轉換成位元組數組才能存入資料庫中.

要這里有關數據的操作略寫,我將一些代碼段寫成方法,方便直接調用.

//根據文件名(完全路徑)
public byte[] SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, 0, streamLength);
fs.Close();
return image;
}

//另外,在ASP.NET中通過FileUpload控制項得到的圖像文件可以通過以下方法
public byte[] SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];
stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength);
stream.Close();
return photo;
}

2.從SQL Server資料庫讀取Image類型的數據,並轉換成bytes[]或Image圖像文件

//要使用SqlDataReader要載入using System.Data.SqlClient命名空間
//將資料庫中的Image類型轉換成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image為資料庫中存放Image類型欄位
}

//將byte[]轉換成Image圖像類型
//載入以下命名空間using System.Drawing;/using System.IO;
using System.Data.SqlClient;*/
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}

6. Java中如何把圖片轉換成二進制流

Java中將圖片轉為二進制流只需要使用FileImageInputStream取得圖片文件,然後使用ByteArrayOutputStream 寫入到二進制流中即可,下面是詳細代碼:


//圖片到byte數組
publicbyte[]image2byte(Stringpath){
byte[]data=null;
FileImageInputStreaminput=null;
try{
input=newFileImageInputStream(newFile(path));
ByteArrayOutputStreamoutput=newByteArrayOutputStream();
byte[]buf=newbyte[1024];
intnumBytesRead=0;
while((numBytesRead=input.read(buf))!=-1){
output.write(buf,0,numBytesRead);
}
data=output.toByteArray();
output.close();
input.close();
}
catch(FileNotFoundExceptionex1){
ex1.printStackTrace();
}
catch(IOExceptionex1){
ex1.printStackTrace();
}
returndata;
}

另外,如果需要將byte[]存回圖片或轉為String,則:

//byte數組到圖片
publicvoidbyte2image(byte[]data,Stringpath){
if(data.length<3||path.equals(""))return;
try{
=newFileImageOutputStream(newFile(path));
imageOutput.write(data,0,data.length);
imageOutput.close();
System.out.println("MakePicturesuccess,Pleasefindimagein"+path);
}catch(Exceptionex){
System.out.println("Exception:"+ex);
ex.printStackTrace();
}
}
//byte數組到16進制字元串
publicStringbyte2string(byte[]data){
if(data==null||data.length<=1)return"0x";
if(data.length>200000)return"0x";
StringBuffersb=newStringBuffer();
intbuf[]=newint[data.length];
//byte數組轉化成十進制
for(intk=0;k<data.length;k++){
buf[k]=data[k]<0?(data[k]+256):(data[k]);
}
//十進制轉化成十六進制
for(intk=0;k<buf.length;k++){
if(buf[k]<16)sb.append("0"+Integer.toHexString(buf[k]));
elsesb.append(Integer.toHexString(buf[k]));
}
return"0x"+sb.toString().toUpperCase();
}
閱讀全文

與java圖片轉byte相關的資料

熱點內容
php選擇頭像 瀏覽:907
程序員是怎麼刪電腦垃圾的 瀏覽:884
javagz壓縮 瀏覽:740
圖片為什麼會自動加密 瀏覽:277
騰訊雲伺服器aspaccess 瀏覽:403
怎麼在筆記本電腦安裝python 瀏覽:518
梯形圖編譯顯示錯誤 瀏覽:738
為什麼從文件夾里拖出文件文件夾會自動關閉 瀏覽:221
華為手機如何加密銀行信息 瀏覽:516
最解壓的度假地 瀏覽:760
java圖片轉byte 瀏覽:966
電腦圖片怎麼合到一個文件夾 瀏覽:971
java歐拉 瀏覽:375
編譯不通過原因 瀏覽:463
什麼是伺服器即將關閉 瀏覽:555
黃金pdf 瀏覽:217
壓力感測器單片機 瀏覽:773
蕪湖前端程序員私活有風險嗎 瀏覽:119
光纖交換機查wwn號命令 瀏覽:14
cnc斜度頭怎麼編程 瀏覽:101