如题java如何用byte[]构造BufferedImage,处理之后怎么再输出为byte[]?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
1.byte[] -> BufferedImageBufferedImage bi1 = ImageIO.read(new ByteArrayInputStream(byte[]));
2.BufferedImage -> byte[]
`ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write(img, "PNG", out);
out.toByteArray()`
如果你的图像来自于别的编码格式的话,比如一般摄像头采集的都是YUV,那么你需要先进行解码,转换成RGB的,否者该类无法使用。
后面,如果你要获取一个BufferedImage的rgb像素信息,可以使用其方法:int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)
如果需要非常高效的处理这些数据,可以使用jni去处理解码的计算,可以极大提高运行效率。