android - 从相机捕获后如何旋转图像

标签 android android-studio camera android-camera

Samsung 上遇到的问题,当我捕获图像时,捕获的图像发生旋转。我试图在垂直方向上将图像旋转 90 度。在背面使用以下代码旋转图像。但是设备上存储了两张图片。当我在正面捕捉图像时也面临着图像旋转的问题,我如何在下面的代码中处理正面和背面的图像旋转。有任何想法吗 ?

                    try {
                    upload_bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
                    large_bitmap = scaleDownLargeImageWithAspectRatio(upload_bitmap);
                    String fileNameLarge = "myapp_" + System.currentTimeMillis() + ".jpg";
                    large_bitmap_path = MediaStore.Images.Media.insertImage(getContentResolver(), large_bitmap, fileNameLarge, null);

                    //Start change orientation
                    String device_name = Build.MANUFACTURER;



                  if(device_name.equals("samsung"))
                   {
                        int rotate=0;
                   try {

                       String realPath = getRealPathFromUri(CameraActivity.this, Uri.parse(large_bitmap_path));
                       exif = new ExifInterface(realPath);
                        int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
                        switch (orientation) {
                            case ExifInterface.ORIENTATION_ROTATE_270:
                                rotate = 270;
                                break;
                            case ExifInterface.ORIENTATION_ROTATE_180:
                                rotate = 180;
                                break;
                            case ExifInterface.ORIENTATION_ROTATE_90:
                                rotate = 90;
                                break;
                            case ExifInterface.ORIENTATION_NORMAL:
                            case ExifInterface.ORIENTATION_UNDEFINED:
                                break;
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                    Matrix matrix = new Matrix();
                    matrix.postRotate(90);

                  large_bitmap = Bitmap.createBitmap(large_bitmap, 0, 0, large_bitmap.getWidth(), large_bitmap.getHeight(), matrix, true);

                    horizontalList.add(large_bitmap_path);
                    horizontal_rv.smoothScrollBy(1000, 10);
                    sqLiteHelper.insertPath(large_bitmap_path, "jpg", "fileName");

                }

最佳答案

使用来自 git hub 的这个库,它处理与图像相关的所有这些事情 library link

关于android - 从相机捕获后如何旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49254678/

相关文章:

Android:如何将数据添加到空 ListView

java - 单击后退按钮时滑动加载的图像会重置

android - 在不更改代码的情况下显示在 android studio 中创建的 bitbucket 上的新分支

java - 日期JSON解析形式

android-studio - 如何更改 FAB 上的图标并将项目重新定位到 Jetpack Compose 的末尾/右侧?

android - 如何通过 ACTION_VIDEO_CAPTURE 操作将文件输出设置为 mp4?

javascript - 如何使对象在 three.js 场景中仅对一个摄像机可见

多次调用 Android LiveData observe

android - 如何杀死除 Android 中的一个 Activity 之外的整个应用程序?

javascript - 铯 : View from the front of the tracked entity