字節數組是用於存儲二進製數據集合的字節數組。例如,圖像的字節數組存儲圖像的每個像素的信息。在字節數組中,我們可以以二進製格式存儲任何文件的內容。我們可以像初始化普通數組一樣用字節來初始化字節數組。
在本文中,我們將學習在 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.");
}
}
輸出:
相關用法
- Java Byte Array轉Object用法及代碼示例
- Java Byte Array轉Writer用法及代碼示例
- Java Byte Array轉Long用法及代碼示例
- Java Byte Array轉String用法及代碼示例
- Java Byte Array轉Hex String用法及代碼示例
- Java Byte Array轉JSON用法及代碼示例
- Java Byte compareUnsigned()用法及代碼示例
- Java Byte decode()用法及代碼示例
- Java Byte parseByte()用法及代碼示例
- Java Byte toUnsignedInt()用法及代碼示例
- Java Byte toUnsignedLong()用法及代碼示例
- Java Byte valueOf()用法及代碼示例
- Java Byte byteValue()用法及代碼示例
- Java Byte compare()用法及代碼示例
- Java Byte compareTo()用法及代碼示例
- Java Byte doubleValue()用法及代碼示例
- Java Byte equals()用法及代碼示例
- Java Byte floatValue()用法及代碼示例
- Java Byte hashCode()用法及代碼示例
- Java Byte intValue()用法及代碼示例
- Java Byte longValue()用法及代碼示例
- Java Byte shortValue()用法及代碼示例
- Java Byte toString()用法及代碼示例
- Java ByteArrayOutputStream close()用法及代碼示例
- Java ByteBuffer getDouble()用法及代碼示例
注:本文由純淨天空篩選整理自shubhamvora05大神的英文原創作品 Java Program to Convert Byte Array to Image。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。