7

Androidでカメラで撮った写真を圧縮しようとしています。しかし、Bitmap.CompressFormat.JPEG で圧縮すると、画像の色が変わってしまいました。どうすればこの問題を解決できますか? ありがとう

私のコードから生成されたサンプル画像をいくつか入れました。画像上部の紙の色が違うのがわかります。

コード スニペットは次のとおりです。

Bitmap bitmap = BitmapFactory.decodeFile(Common.FOLDER_PATH + "pic.jpg");

FileOutputStream stream2 = new FileOutputStream(Common.FOLDER_PATH + "pic100.jpg");         
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream2); 

FileOutputStream stream3 = new FileOutputStream(Common.FOLDER_PATH + "pic100.png");         
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream3);

これは元の画像です: オリジナル
これは JPEG です: jpg
これは PNG です: png

4

1 に答える 1

1

JPEG非可逆圧縮形式であり、圧縮中に画像情報が失われる可能性があります。元の画像情報を犠牲にして圧縮率を向上させます (その結果、ファイルが小さくなります)。

ただし、これが受け入れられない場合は、PNGを含む可逆圧縮方法のいずれかを使用する必要があります。

于 2012-06-06T07:10:26.213 に答える