到目前为止,我有同样的问题,现在我使用管理
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