【发布时间】:2016-03-08 18:57:25
【问题描述】:
我想做什么可以很快解释。让我们考虑一个数字“x”。我使用 TYPE_USHORT_555_RGB 对图像进行操作。我使用 setRGB(x),保存图像。不幸的是,Java 要求我通过 getRGB 读取带有 TYPE_INT_ARGB 的结果图像。如何找到我的初始 x? 最让我担心的是,虽然通过 getRGB 读取的一些数字在它们之间是相等的,但这种等价模式在源代码中并未得到尊重,这就是我的意思:
阅读: -16777216 -16777216 -16777216 -16777183 -16777117 -16777101 -16777093 -16777101
来源: 00 00 00 20 66 74 79 70(十六进制)
位置 6 和 8 的数字在读取文件中相等,但在源中不同 (74 != 70)
//Write part:
BufferedImage img=new BufferedImage(8, 1, BufferedImage.TYPE_USHORT_555_RGB);
for(int q=0;q<8;q++)
img.setRGB(q,0,realVal[q]);//realVal contains the hex values
File f= new File("randomfile.bmp");
ImageIO.write(img, "bmp", f);
//Read part:
BufferedImage img;
try{
img=ImageIO.read(new File("randomfile.bmp"));
for(int q=0;q<8;q++)
System.out.println(img.getRGB(q,0));
}catch(Exception e){}
【问题讨论】:
-
你的十六进制值可能是红绿蓝;写下一些代码,看看你在做什么
-
555_RGB 是一个非常复杂的模型,它几乎肯定会扭曲数值——如果你真的需要,你需要得到方程——为什么需要 555?你不能用普通的RGB吗?您希望对此图像进行什么样的处理 - 您不妨使用数组
-
刚刚意识到您源中的十六进制值拼写为“ftyp”。你确定那是你的像素值吗?或者您是否在十六进制编辑器中查看 文件,期望文件的字节等于图像中的像素值???
标签: java image rgb bufferedimage