當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Byte Array轉Image用法及代碼示例


字節數組是用於存儲二進製數據集合的字節數組。例如,圖像的字節數組存儲圖像的每個像素的信息。在字節數組中,我們可以以二進製格式存儲任何文件的內容。我們可以像初始化普通數組一樣用字節來初始化字節數組。

在本文中,我們將學習在 Java 中將字節數組轉換為圖像。

將字節數組轉換為圖像:

如果我們以數組格式給出了圖像的每個字節的信息,我們就可以從該數組中導出圖像。我們可以使用 Java 中的 ImageIO 類寫入和讀取圖像詳細信息。我們將使用 ImageIO 類的以下方法將字節數組轉換為圖像。

  • toByteArray():將圖像轉換為字節數組。
  • 字節數組輸入流(字節數組):創建 ByteArrayInputStream 類的對象。
  • ImageIO.read():通過傳遞 ByteArrayInputStream 類對象作為參數來讀取圖像。
  • ImageIO.write():來寫圖像。

方法:

1.這裏,我們需要字節數組將其轉換為圖像。因此,我們首先讀取圖像文件並為該圖像創建字節數組。

使用Image.IO類的read()方法讀取圖像文件。

BufferedImage image = ImageIO.read(new File("Image path"));

創建ByteArrayOutputStream類的對象並將圖像寫入我們在上一步中讀取的對象。

ByteArrayOutputStream outStreamObj = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", outStreamObj);

將圖像轉換為字節數組。

byte [] byteArray = outStreamObj.toByteArray();

2. 現在,讀取字節數組並生成一個新的圖像文件。

創建ByteArrayInputStream類的對象來讀取字節數組。

ByteArrayInputStream inStreambj = new ByteArrayInputStream(byteArray);

從 ByteArrayInputStream 類的對象中讀取圖像。

BufferedImage newImage = ImageIO.read(inStreambj);

創建一個新文件並將圖像寫入我們從字節數組中讀取的文件中。

ImageIO.write(newImage, "jpg", new File("outputImage.jpg") );

例子:

Java


// Java program to convert byte array to image. 
  
import java.io.*; 
import java.awt.image.BufferedImage; 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
  
class GFG { 
    public static void main (String[] args) { 
        
      // read the image from the file 
      BufferedImage image = ImageIO.read(new File("Image path")); 
        
      // create the object of ByteArrayOutputStream class 
      ByteArrayOutputStream outStreamObj = new ByteArrayOutputStream(); 
        
      // write the image into the object of ByteArrayOutputStream class 
      ImageIO.write(image, "jpg", outStreamObj); 
        
      // create the byte array from image 
      byte [] byteArray = outStreamObj.toByteArray(); 
        
      // create the object of ByteArrayInputStream class 
      // and initialized it with the byte array. 
      ByteArrayInputStream inStreambj = new ByteArrayInputStream(byteArray); 
        
      // read image from byte array 
      BufferedImage newImage = ImageIO.read(inStreambj); 
        
      // write output image 
      ImageIO.write(newImage, "jpg", new File("outputImage.jpg")); 
      System.out.println("Image generated from the byte array."); 
    } 
}

輸出:



相關用法


注:本文由純淨天空篩選整理自shubhamvora05大神的英文原創作品 Java Program to Convert Byte Array to Image。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。