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个连续的字节元素中存储为交替的蓝色、绿色和红色

希望这对其他人有所帮助:-)

请参见