は、これまでのところ私は同じ問題を持っていたし、今私は
setPictureFormat(ImageFormat.JPEG);
カメラのパラメータ設定を使用して地雷を修正するために管理します。
ちょうど最近、カメラのデフォルト画像出力がYUVであることがわかりました。これがプレビューで完全に表示される理由ですが、写真が撮られると、緑色やピンク色、または破損した画像出力が得られます。 これは、カメラがサポートしているImageFormat値です。
JPEG = 256;
NV16 = 16;
NV21 = 17;
RAW10 = 37;
RAW_SENSOR = 32;
RGB_565 = 4;
UNKNOWN = 0;
YUV_420_888 = 35;
YUY2 = 20;
YV12 = 842094169;
サポートされているサイズ以外に、場合によってはPictureFormatもチェックする必要があります。
http://i.stack.imgur.com/PlHFH.png
これらはImageFormat YUVを使用して、したがって、JPEG圧縮として保存撮影しただけのサンプル画像です。
しかし、あなたはImageFormatを変更するので、この回避策で画像を保存する必要があるかもしれませんYUVフォーマットの設定を保持したくない場合は:
Camera.Parameters parameters = camera.getParameters();
Camera.Size size = parameters.getPreviewSize();
YuvImage image = new YuvImage(data, parameters.getPreviewFormat(),
size.width, size.height, null);
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "YuvImage.jpg");
FileOutptStream filecon = new FileOutputStream(file);
image.compressToJpeg(new Rect(0, 0, image.getWidth(), image.getHeight()), 90,
filecon);
私は現在、G2を持っていませんしたがって、この質問に答えることはできません - ごめんなさい! – CommonsWare
@CommonsWareしかし、あなたはこの問題を他のデバイスで見たことがありますか?私はそれが一般的ではないと期待されていると、今後のAndroid 2.3のアップデートはそれを修正します。 – smith324
"しかし、あなたはこの問題を他のデバイスで見たことがありますか?" - いいえ。 – CommonsWare