2010-12-15 166 views
6

試圖調整存儲在我的SD卡上的圖像大小,我注意到原來的顏色被改變了。它接縫BitmapFactory.decodeFile是可以響應的。這裏是一個演示代碼:Android不尊重色彩!

private void testImage() throws Exception{ 
    BitmapFactory.Options o = new BitmapFactory.Options(); 
    o.inDither = false; 
    o.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    o.inScaled = false; 
    Bitmap b = BitmapFactory.decodeFile("/sdcard/test/original.jpg", o); 
    b.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream("/sdcard/test/result.jpg")); 
    b.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream("/sdcard/test/result.png")); 
} 

所得的圖象(original.jpg,result.jpg,result.png):

alt textalt textalt text

已經可以看到,男孩的皮膚在2個結果圖像上有點綠色。任何提示解決這個問題?

+0

FWIW,這三個圖像看起來和我完全一樣。 – CommonsWare 2010-12-15 15:21:14

+0

我真的沒有看到你的png – schwiz 2010-12-15 15:22:09

+0

FWIW有什麼不同,我看到第二個和第一個相比有所不同:) – 2010-12-15 15:35:59

回答

1

你怎麼知道你原來的顏色不綠?

您的相機/ PC可能已經顯示圖片正確,因爲它們正確應用了相機的顏色配置文件。你的代碼顯然沒有。

問題可以在那裏嗎?嘗試查看除相機/ PC之外的其他設備上的圖片。

+0

我試圖展示的區別在於「original.jpg」和「result。*」之間。並非如此可見,而是嘗試在圖像查看器之間切換圖像,這變得很明顯。 – 2010-12-15 16:18:19