3 回答
TA贡献1784条经验 获得超9个赞
这里有很多类似的主题和问题。由于您不是在编写自己的相机,因此我认为可以归结为:
一些设备在保存图像之前先旋转图像,而其他设备只是在照片的exif数据中添加方向标签。
我建议检查照片的exif数据,并特别寻找
ExifInterface exif = new ExifInterface(SourceFileName); //Since API Level 5
String exifOrientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);
由于照片在您的应用程序中正确显示,因此我不确定问题出在哪里,但这绝对可以使您走上正确的道路!
TA贡献2021条经验 获得超8个赞
我刚刚遇到了相同的问题,并使用它来纠正方向:
public void fixOrientation() {
if (mBitmap.getWidth() > mBitmap.getHeight()) {
Matrix matrix = new Matrix();
matrix.postRotate(90);
mBitmap = Bitmap.createBitmap(mBitmap , 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, true);
}
}
如果位图的宽度大于高度,则返回的图像为横向,因此我将其旋转90度。
希望它对这个问题有帮助。
TA贡献1871条经验 获得超8个赞
需要两件事:
相机预览需要与旋转相同。设置这个camera.setDisplayOrientation(result);
将捕获的图片保存为相机预览。通过执行此操作Camera.Parameters。
int mRotation = getCameraDisplayOrientation();
Camera.Parameters parameters = camera.getParameters();
parameters.setRotation(mRotation); //set rotation to save the picture
camera.setDisplayOrientation(result); //set the rotation for preview camera
camera.setParameters(parameters);
希望能有所帮助。
- 3 回答
- 0 关注
- 464 浏览
添加回答
举报