我编写了一个应用程序来捕获图像。问题是图像在捕获后旋转了 90 度。我已经设置了
camera.setDisplayOrientation(NINTY_DEGREES);
但这只会影响SurfaceView
. 真正的问题是我从相机得到的字节被翻转了。为什么会这样?有没有可以设置在捕获前翻转它的设置?
当图像被捕获时,我的活动订阅了一个事件。这是我在byte[]
填写时注册的方式:
camera.takePicture(null, null, new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
if (null != callback)
callback.onJpegPictureTaken(data, camera);
}
});
在我的Activity
public class History extends BaseWindow implements OnClickListener, CaptureImageCallback
及相关方法:
@Override
public void onJpegPictureTaken(byte[] data, Camera camera) {
Intent i = new Intent(this, ImageEditing.class);
i.putExtra("image", data);
startActivity(i);
}
可以看到data
包含图像数据的参数,这个字节数组旋转了 90 度。我当然可以旋转ImageView
90 度,但由于我将使用其他系统,例如自制的 Web 服务,我需要将此热修复应用到每个外部系统。我怎样才能纠正这种旋转?
谢谢!