Java BuffereImage到byte:通道是如何映射的?
我正在使用以下代码将Java BuffereImage到byte:通道是如何映射的?,java,byte,bufferedimage,rgba,Java,Byte,Bufferedimage,Rgba,我正在使用以下代码将buffereImage转换为byte[]数组: BufferedImage input = ImageIO.read(new File(path)); DataBufferByte bufferBytes = (DataBufferByte) input.getRaster().getDataBuffer(); byte[] bytes = bufferBytes.getData(); 让我困惑的一件事是,通道如何映射到实际的字节元素?假设图像中的第一个像素有一个ARGB
buffereImage
转换为byte[]
数组:
BufferedImage input = ImageIO.read(new File(path));
DataBufferByte bufferBytes = (DataBufferByte) input.getRaster().getDataBuffer();
byte[] bytes = bufferBytes.getData();
让我困惑的一件事是,通道如何映射到实际的字节元素?假设图像中的第一个像素有一个ARGB图像,从字节[0]
开始,通过字节[3]
,哪个元素是红色通道,哪个是绿色通道,哪个是蓝色通道,哪个是alpha通道
我做了一些测试运行,并在调试模式下检查了每个元素,但是我的结果是不确定的(我遗漏了什么吗?)
提前感谢。感谢对我原来问题的评论,我找到了答案。 查看
buffereImage.getType()
和JavaDoc的结果将帮助您确定byte[]
数组中颜色的映射
在我的例子中,图像的类型是type\u 3BYTE\u BGR
,根据Java文档,它在3个连续的字节元素中存储为交替的蓝色、绿色和红色
希望这对其他人有所帮助:-)请参见