Java 如何获取a';键入3字节BGR';形象?
我有一个Java 如何获取a';键入3字节BGR';形象?,java,image,Java,Image,我有一个类型为3BYTE\u BGR的图像,我想将其转换为类型为INT\u RGB 虽然我已经搜索过了,但我还没有找到一种方法来做这件事。我想逐像素转换图像。然而,BufferedImage.getRGB(i,j)似乎不起作用 如何在类型为类型为\u 3BYTE\u BGR的图像中获取RGB值?我不确定您所说的“getRGB(I,j)不起作用”是什么意思。getRGB返回压缩整数;你需要解码它 int color = image.getRGB(i,j); int r = (argb)&0
类型为3BYTE\u BGR
的图像,我想将其转换为类型为INT\u RGB
虽然我已经搜索过了,但我还没有找到一种方法来做这件事。我想逐像素转换图像。然而,BufferedImage.getRGB(i,j)
似乎不起作用
如何在类型为
类型为\u 3BYTE\u BGR
的图像中获取RGB值?我不确定您所说的“getRGB(I,j)不起作用”是什么意思。getRGB返回压缩整数;你需要解码它
int color = image.getRGB(i,j);
int r = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
请参见我认为您可以安全地忽略alpha通道,因为TYPE_3BYTE_BGR没有alpha通道。是的,我这样解码,然后设置“setRGB”绘制TYPE_INT_RGB图像,但最后我得到两个不同的图像。您可以按照建议手动执行,但是,只需创建一个类型为_INT_RGB的目标BuffereImage,并将源映像绘制到目标BuffereImage中,就会简单得多。尝试了您的建议。使用“result.getGraphics().drawImage(source,0,0,null);”。结果图像中的像素不会还原。