2013-04-26 108 views
5

我打电话takePicture与该JPEG事件的回调:camera.takePicture(null, null, this);为什么onPictureTaken中的图像字节数据会产生镜像图像?

这里是回调处理:

@Override 
public void onPictureTaken(final byte[] data, Camera camera) { 
    Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length); 
    MediaStore.Images.Media.insertImage(getContentResolver(), picture, "name" , "description"); 
} 

在测试中,我发现,图像总是反映关于y轴。有谁知道(1)这是否发生在所有设备上,以及(2)为什么?我真的不明白为什么字节数据不能代表我在相机预览中看到的内容。这是不合理的预期吗?

回答

4

我认为你正在使用前置摄像头吧? 这是Front Camera的行为。 即使您在笔记本电脑上使用网络摄像头,也是如此。

如果你要修复它。请参考Here

+0

不错!谢谢。是否有文档说明前置摄像头*是否具有*镜像?或者是所有制造商都遵循的不成文规则? – user5243421 2013-04-26 05:26:22

+0

我认为这是一个常见的规范。当相机对着你时,它会从其角度看待图像。 (这与你所看到的相反。)不确定文档,但我的三星,宏达电,索尼这样设置所有行为。 – Calvin 2013-04-26 05:35:24