从Android上的Camera中保存图像

时间:2011-03-22 00:04:52

标签: android image camera

所以我在Android上实现了自己的相机应用程序版本。一切似乎都运作良好,除了我有一个使用MyTouch 4G的用户,他的图像变得条纹和混乱:

Image he gets from saving

关于可能导致这种情况的任何想法?有没有人见过这个?

此外:拥有其他设备的用户正在拍摄他们的照片。

编辑:我现在能够在设备上看到这种情况。拍摄时大约一半的画面闪烁绿色。然后如上图所示。我尝试过多种不同的方法来保存字节[]。看来我得到的数据真的是腐败的。我正在使用jpeg onPictureTaken回调,只是保存了那个byte []。然后再次。我只能在一些MyTouch 4G设备上看到这个。我真的很茫然。有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

我说你正在复制数据,你可能会错过每行末尾的一些像素。也许你的计算中有宽度错误?

答案 1 :(得分:1)

我在使用HTC Thunderbolt时遇到了类似的问题。我将图像数据byte []从PictureCallback.onPictureTaken()直接保存到SD卡。当我在SD卡上观看图像时,它显示出相同的条带效果。

然后我意识到我在相机参数中设置了previewSize。我使用的是这段代码:

// Ensure that the camera resolution is a multiple of 8, as the screen may not be.
// TODO: A better solution would be to request the supported preview resolutions
// and pick the best match, but this parameter is not standardized in Cupcake.
Point cameraResolution = new Point();
cameraResolution.x = ( screenResolution.x >> 3 ) << 3;
cameraResolution.y = ( screenResolution.y >> 3 ) << 3;
parameters.setPreviewSize( cameraResolution.x, cameraResolution.y );

当我删除此代码并且根本没有设置预览大小时,我的图片不再被绑定。