字节数组是用于存储二进制数据集合的字节数组。例如,图像的字节数组存储图像的每个像素的信息。在字节数组中,我们可以以二进制格式存储任何文件的内容。我们可以像初始化普通数组一样用字节来初始化字节数组。
在本文中,我们将学习在 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。