字节数组到图像对象

我给了一个Java的byte []数组,其中包含一个图像字节,我需要输出到一个图像。 我怎么去做这个?

非常感谢

5 Solutions collect form web for “字节数组到图像对象”

BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes)); 

如果您知道图像的types,只想生成一个文件,则不需要获取BufferedImage实例。 只需将字节写入具有正确扩展名的文件。

 OutputStream out = null; try { out = new BufferedOutputStream(new FileOutputStream(path)); out.write(bytes); } finally { if (out != null) out.close(); } 
 From Database. Blob blob = resultSet.getBlob("pictureBlob"); byte [] data = blob.getBytes( 1, ( int ) blob.length() ); BufferedImage img = null; try { img = ImageIO.read(new ByteArrayInputStream(data)); } catch (IOException e) { e.printStackTrace(); } drawPicture(img); // void drawPicture(Image img); 

根据Java文档,它看起来像你需要使用MemoryImageSource类将您的字节数组放入内存中的对象,然后使用Component.createImage(ImageProducer)下一步(传入您的MemoryImageSource,实现ImageProducer)。

因为听起来你已经知道byte []数组的格式(例如RGB,ARGB,BGR等),所以你可以使用BufferedImage.setRGB(…)或者BufferedImage.getRaster()和WritableRaster.setPixels(…)或WritableRaster.setSamples(…) 。 不幸的是,这两种方法都要求将字节[]转换为int [],float []或double []之一,具体取决于图像格式。

  • 从共享首选项中获取并获取string数组
  • 按值sortingmultidimensional array
  • 对numpy数组中的每个第n个条目进行子采样
  • 使用PHP过滤类似于SQL LIKE'%search%'的数组中的值
  • 如何模拟C数组初始化“int arr = {e1,e2,e3,...}”行为与std :: array?
  • 在Javascript中删除数组中的空元素
  • 一个数组的地址是如何等于它在C中的值?
  • numpy将两个数组垂直连接