以人像模式拍摄后旋转的照片

Posted

技术标签:

【中文标题】以人像模式拍摄后旋转的照片【英文标题】:Photo Rotated After Capture in Portrait Mode 【发布时间】:2015-10-21 05:02:02 【问题描述】:

我正在尝试拍摄捕获的图像并显示给 Activity。设置图像后,它会向右旋转 90 度。我不确定我做错了什么。我使用MediaStore.ACTION_IMAGE_CAPTURE 捕获图像并将其保存并使用URI 进行设置。代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_selectusername);

    confirm = (Button) findViewById(R.id.confirm_select);
    confirm.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 

            takePhoto();

        
    );



private void takePhoto() 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    File photo = new File(Environment.getExternalStorageDirectory(), "temp.jpg");
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));

    //This is for photo editing purposes
    inputURI = Uri.fromFile(photo);
    outputURI = Uri.fromFile(new File(getCacheDir(), photoname));

    //Cropping, Resizing, etc. takes place

    startActivityForResult(intent, TAKE_PICTURE);




@Override
public void onActivityResult(int requestCode, int resultCode, Intent result) 
    super.onActivityResult(requestCode, resultCode, result);
    if(requestCode == TAKE_PICTURE && resultCode == RESULT_OK)
        ImageView imageView = (ImageView) findViewById(R.id.profilepicture_select);

        imageView.setImageURI(outputURI);

    else
        Log.d("TEST", "Something went wrong!");
    

如有必要,我可以显示更多代码并进行说明。感谢所有帮助!

【问题讨论】:

***.com/questions/14066038/…,试试这个链接,因为它是一些安卓设备的问题 【参考方案1】:

您的代码看起来不错。可能是设备的摄像头有问题。这是 Galaxy S4 的已知问题。某些设备会输出奇怪的 exif 数据,从而导致图像在显示时关闭。你是怎么解决的?

这里有一条线索: android camera/picture orientation issues with Samsung Galaxy S3, S4, S5

【讨论】:

以上是关于以人像模式拍摄后旋转的照片的主要内容,如果未能解决你的问题,请参考以下文章

用相机意图拍照以肖像模式android旋转图片

在 iOS OpenCV 相机中将相机预览旋转到人像

看机器学习如何驾驭光影:一键为照片增光添彩的“人像光效”

Android | 教你如何使用HwCameraKit接入相机人像模式

为啥人像视图照片水平显示?

谷歌提出"光影魔术手"技术: 机器学习增强人像照明, “普通”照片更好看了!