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. 將base64位轉換成png圖片的java代碼
//base64字元串轉化成圖片
public static boolean GenerateImage(String imgStr)
{ //對位元組數組字元串進行Base64解碼並生成圖片
if (imgStr == null) //圖像數據為空
return false;
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解碼
byte[] b = decoder.decodeBuffer(imgStr);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//調整異常數據
b[i]+=256;
}
}
//生成jpeg圖片
String imgFilePath = "d://222.jpg";//新生成的圖片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
希望可以幫到你。
4. 用java寫個程序 將 圖像文件(png,jpg,等等) 轉換成byte數組的 程序 謝謝 了
/* 讀寫圖像文件 */
import javax.swing.JOptionPane;
import java.io.*;
class FileRW
{
int bytes;
byte buffer[ ] = new byte[65560];
FileInputStream fileInput;
FileOutputStream fileOutput;
FileRW()
{
takeimg();
loadimg();
JOptionPane.showMessageDialog(null,"文件復制並更名成功!\n文件大小為:"+bytes);
System.exit(0); //退出程序
}
//讀取圖像文件a.jpg
public void takeimg()
{
try {
File file=new File("a.jpg");
fileInput = new FileInputStream(file);
bytes = fileInput.read(buffer,0,65560);
} catch(IOException ei) { System.out.println(ei); }
}
//寫入到b.jpg
public void loadimg()
{
try {
fileOutput = new FileOutputStream("b.jpg");
fileOutput.write(buffer, 0, bytes) ;
} catch(IOException eo) { System.out.println(eo); }
}
}
public class 讀寫圖像文件
{
public static void main(String[] args)
{ new FileRW(); }
}
5. 如何用JAVA轉換圖像格式
關於圖像轉換的方式,實際上操作的是圖像的位元組流。我的工作中遇到過將bmp文件壓縮為jpg以便於網路傳輸的課題。所以我這里重點介紹bmp轉為jpg的一個方法。
實際上,我更喜歡使用以前sun公司內部使用的api提供的轉換方法,這里使用到了兩個很重要的類:
com.sun.image.codec.jpeg.JPEGCodec
com.sun.image.codec.jpeg.JPEGImageEncoder
需要注意的是,它們所屬的一個jar包不存在於編譯目錄下,但存在於運行目錄下,所以我們首先需要在jre文件下找到rt.jar並導入進來以使得編譯通過。
我改寫了網上的一個轉換代碼,所得代碼如下:
備註:親自嘗試,當從jpg轉bmp時會轉很久很久時間(看不到盡頭),轉得的文件可以很大,所以建議不要使用。
6. java怎樣把一個byte數組保存成圖片到硬碟上
轉成的圖片 要麼是個文件File 要麼是個文件流. 那都只需要通過輸入輸出流往磁碟上寫就行了