当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。