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

时间:2018-03-13 11:10:35

标签: android android-studio camera android-camera

三星面临的问题,当我捕捉图像时,捕获的图像会被旋转。我试图将图像在垂直方向上旋转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");

                }

1 个答案:

答案 0 :(得分:1)

从git hub使用这个库它处理与图像library link

相关的所有这些事情