我想要做的事情可以很快解釋。我們來考慮一個數字「x」。我使用TYPE_USHORT_555_RGB對圖像進行操作。我使用setRGB(x),保存圖像。不幸的是,Java有義務通過getRGB使用TYPE_INT_ARGB讀取生成的圖像。我怎樣才能找到我的初始x? 我什麼擔心的最多的是,雖然通過閱讀的getRGB一些數字是他們之間的平等,等價的這種模式是不是在源推崇,這裏就是我的意思:寫入5-5-5 RGB並讀入RGBA,BufferedImage
READ: -16777216 -16777216 -16777216 -16777183 -16777117 -16777101 -16777093 -16777101
SOURCE: 00 00 00 20 66 74 79 70(HEX)
的數字在位置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){}
你的十六進制值可能是紅綠藍;放下一些代碼,並會看到你在做什麼 – gpasch
555_RGB是一個非常複雜的模型,它幾乎可以肯定會扭曲值 - 如果你真的需要這個值,你需要得到方程 - 爲什麼你需要555?你不能使用普通的RGB?你希望用這個圖像做什麼樣的處理 - 你也可以使用數組 – gpasch
剛剛意識到來自源的十六進制值拼寫「ftyp」。你確定這是你的像素值嗎?或者你是否在十六進制編輯器中查看*文件*,期望文件的字節等於圖像中的像素值? – haraldK