Android-图像大小调整和裁剪

Android-图像大小调整和裁剪,android,image,resize,crop,Android,Image,Resize,Crop,我正在使用库从图库中选择图像并进行裁剪。但是,我也找到了一个旋转图像的选项。 去我正在使用的图书馆 在我的代码中,我访问提供的功能,类似于库中给出的示例。我有两个问题 在搜索解决方案时,我从图库中选择的图像总是按一定顺序旋转(时钟或反时钟),我知道这是由于图像的大尺寸造成的。但是,无法找到一个好的解决方案来调整图像大小,因为我必须使用这个库 虽然图像旋转效果很好,并且我能够正确地裁剪图像,但是生成的裁剪图像仍然旋转,裁剪的部分部分与我裁剪的部分相同。抱歉,由于回购点数减少,我无法发布图像 谢

我正在使用库从图库中选择图像并进行裁剪。但是,我也找到了一个旋转图像的选项。 去我正在使用的图书馆

在我的代码中,我访问提供的功能,类似于库中给出的示例。我有两个问题

  • 在搜索解决方案时,我从图库中选择的图像总是按一定顺序旋转(时钟或反时钟),我知道这是由于图像的大尺寸造成的。但是,无法找到一个好的解决方案来调整图像大小,因为我必须使用这个库

  • 虽然图像旋转效果很好,并且我能够正确地裁剪图像,但是生成的裁剪图像仍然旋转,裁剪的部分部分与我裁剪的部分相同。抱歉,由于回购点数减少,我无法发布图像


  • 谢谢

    您可以使用此功能来确定多媒体资料中图像的旋转。您需要传入从选择器返回的图像的路径

    public static int getRotationFromBitmapFile(String filePath) {
            ExifInterface exifInterface = null;
            try {
                exifInterface = new ExifInterface(filePath);
            } catch (IOException e) {
                //Logger.d("Unable to read ExifInterface from file", e);
            }
    
            if (exifInterface != null) {
                int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);
                switch (orientation) {
                    case ExifInterface.ORIENTATION_ROTATE_180:
                        return 180;
                    case ExifInterface.ORIENTATION_ROTATE_270:
                        return 270;
                    case ExifInterface.ORIENTATION_ROTATE_90:
                        return 90;
                    case ExifInterface.ORIENTATION_NORMAL:
                        return 0;
                }
            }
    
            //Could not read or information not present, use 0?!!
            return 0;
        }
    

    好吧,所以我找不到任何简单的方法。 但是git上有一个旧的存储库,我查看了()并对其进行了一些调整,以获得我想要的。我调整了纵横比和布局设计,使它看起来不错


    谢谢你的帮助。

    嗯,它总是归零。whatsapp或facebook等应用程序是如何处理这一问题的?有什么线索吗?这个代码是我们项目的复制粘贴。它在那里很有魅力。我们允许用户通过允许他用相机拍照来更改他的个人资料照片。在他这样做之后,我们将图像缩小并压缩,根据上面的函数旋转图像,最后将其上载到服务器。您应该检查是否引发异常,然后照片不包含此信息。好的,旋转不是问题。。选择图像后,我可以旋转图像,但剪切后旋转会恢复。那么,问题可能在于作物?奇怪的是,被裁剪的部分正是我想要裁剪的。。它只是旋转回到那个角度。你是如何裁剪图像的。您是在传递位图还是原始文件的路径?如果您正在传递文件路径,它将加载该图像,而不是您旋转的图像。你在它被裁剪后旋转它似乎可以解决这个问题你能提供到目前为止的代码吗?