【问题标题】:The output crop width and height in Android intent crop is not as setAndroid意图裁剪中的输出裁剪宽度和高度与设置不符
【发布时间】:2013-09-01 06:07:17
【问题描述】:

我使用意图裁剪来裁剪图像文件:

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");

新的宽度是原来的宽度。 新高度是新(也是原始)宽度的一半,比原始宽度小一点。

Uri imageCaptureUri = Uri.fromFile(pictureFile);
intent.setData(imageCaptureUri);
intent.putExtra("crop", "true");
intent.putExtra("outputX", mCameraPreview.mCameraSize.width);  // mCameraPreview.mCameraSize.width is the picture size I set for camera parameters; so it is also the photo's width.
intent.putExtra("outputY", mCameraPreview.mCameraSize.width/2);
intent.putExtra("aspectX", 2);
intent.putExtra("aspectY", 1);
intent.putExtra("return-data", false);

注意:mCameraPreview.mCameraSize.width是我为相机参数设置的图片尺寸;所以它也是照片的宽度。通过调试,我已经确认它等于照片的宽度。 但是在裁剪意图的 UI 上,裁剪矩形并没有像原来的宽度那样延伸。裁剪矩形宽度约为原始宽度的 3/5。

由于 com.android.camera.action.CROP 没有记录,我不知道什么是正确的方法。

提前致谢!

【问题讨论】:

    标签: android android-image


    【解决方案1】:

    您应该记录mCameraPreview.mCameraSize.width 的值。相机的预览尺寸在不同的设备上有不同的默认值。

    我认为使用pictureFile的大小是一种简单的解决方法。

    photo = BitmapFactory.decodeFile(imageCaptureUri.getPath());
    /* then get width and height */
    photo_width = photo.getWidth();
    photo_height = photo.getHeight();
    intent.putExtra("outputX", photo_width);
    intent.putExtra("outputY", photo_width/2);
    

    --编辑--

    您想调整裁剪矩形的初始大小吗?
    这似乎是不可能的,裁剪矩形始终设置为目标图像的中心,具有默认大小。大小只能通过在屏幕上拖动来改变。

    这里的参数outputXoutputY只影响裁剪后图像的输出大小

    https://github.com/lvillani/android-cropimage 这是源代码。自己动手吧!

    【讨论】:

    • 我通过调试,确认了照片的宽度,因为它是为相机设置的图片尺寸。
    • 对不起。我应该说得更清楚:这个尺寸是我为相机设置的图片尺寸。我使用调试,来确认照片的宽度,因为它是为相机设置的图片大小。
    • 所以你的意思是,裁剪矩形的初始大小与 outputX 和 outputY 不同?这种设计会很容易产生误导。
    • 是的。它们是不同的,并且初始大小在某种程度上是不可改变的。编辑源代码可能是唯一的方法。
    • 谢谢。经过实验,我发现 outputX 和 output Y 似乎根本不起作用。裁剪后的图像是裁剪矩形内的图像,无论您将 outputX 和 outputY 设置为什么。从源代码来看,它使用了Bitmap的方法。我首先想到的是为了避免内存不足,它会使用本机代码。它限制像素数小于5M。由于此意图仅适用于一个应用程序,因此可用内存就足够了。如果我在我的应用程序中创建自己的裁剪活动,那么内存将是一个大问题。
    猜你喜欢
    • 2018-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    相关资源
    最近更新 更多