찾다

 >  Q&A  >  본문

java如何用byte[]构造BufferedImage,处理之后怎么再输出为byte[]?

java不是很熟悉,特别是IO,求有经验的同学帮帮忙

天蓬老师天蓬老师2769일 전402

모든 응답(2)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-17 10:59:23

    1.byte[] -> BufferedImage
    BufferedImage bi1 = ImageIO.read(new ByteArrayInputStream(byte[]));

    2.BufferedImage -> byte[]
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ImageIO.write(img, "PNG", out);
    out.toByteArray()

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 10:59:23

    我最近在移动设备上处理过由摄像头回传的图像进行实时滤镜处理的开发,所以还有一些涉略。

    你的需求可能是要做图像的处理。
    这边有个例子可能是你需要的:
    BufferedImage与byte数组互转

    如果你的图像来自于别的编码格式的话,比如一般摄像头采集的都是YUV,那么你需要先进行解码,转换成RGB的,否者该类无法使用。

    后面,如果你要获取一个BufferedImage的rgb像素信息,可以使用其方法:

    int[]	getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)

    如果需要非常高效的处理这些数据,可以使用jni去处理解码的计算,可以极大提高运行效率。

    회신하다
    0
  • 취소회신하다