为了账号安全,请及时绑定邮箱和手机立即绑定

Android中的相机方向问题

Android中的相机方向问题

吃鸡游戏 2019-12-10 10:50:10
我正在构建一个使用相机拍照的应用程序。这是我执行此操作的源代码:        File file = new File(Environment.getExternalStorageDirectory(),            imageFileName);    imageFilePath = file.getPath();    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");    //Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));    startActivityForResult(intent, ACTIVITY_NATIVE_CAMERA_AQUIRE);在onActivityResult()方法上,我BitmapFactory.decodeStream()用来拾取图像。当我在Nexus One上运行我的应用程序时,它运行良好。但是,当我在Samsung Galaxy S或HTC Inspire 4G上运行时,图像的方向不正确。使用人像模式拍摄时,真实图像(保存在SD卡上)始终旋转90度。拍摄后的图像预览 SD卡上的真实图像拍摄后的图像预览--------- SD卡上的真实图像使用风景模式拍摄时,一切都很好。拍摄后的图像预览 SD卡上的真实图像拍摄后的图像预览--------- SD卡上的真实图像
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

这里有很多类似的主题和问题。由于您不是在编写自己的相机,因此我认为可以归结为:


一些设备在保存图像之前先旋转图像,而其他设备只是在照片的exif数据中添加方向标签。


我建议检查照片的exif数据,并特别寻找


ExifInterface exif = new ExifInterface(SourceFileName);     //Since API Level 5

String exifOrientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);

由于照片在您的应用程序中正确显示,因此我不确定问题出在哪里,但这绝对可以使您走上正确的道路!


查看完整回答
反对 回复 2019-12-10
?
宝慕林4294392

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度。


希望它对这个问题有帮助。


查看完整回答
反对 回复 2019-12-10
?
ITMISS

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);

希望能有所帮助。


查看完整回答
反对 回复 2019-12-10
  • 3 回答
  • 0 关注
  • 464 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信