未指定大小的 Android 裁剪图像

Posted

技术标签:

【中文标题】未指定大小的 Android 裁剪图像【英文标题】:Android Crop Image with unspecified size 【发布时间】:2013-10-11 15:43:40 【问题描述】:

我找到了很多关于该主题的主题,但不幸的是,没有一个可以回答这个问题。我想裁剪一个未指定大小的图像,最后保存到新图像。

我现在在做什么(为了更好地查看我省略了 try/catch 等):

        Intent cropIntent = new Intent("com.android.camera.action.CROP");
        cropIntent.setDataAndType(picUri, "image/*");
        cropIntent.putExtra("crop", "true");
        cropIntent.putExtra("outputX", 360);
        cropIntent.putExtra("outputY", 360);
        cropIntent.putExtra("return-data", true);
        startActivityForResult(cropIntent, PIC_CROP);

我不知道用户是否想要一个 360x360 的样方或一个 1024x768 的矩形等。有没有可能不使用固定值指定 outputx/Y?

【问题讨论】:

你有没有办法让它在未指定的大小和纵横比下工作? 不幸的是还没有 【参考方案1】:

改用这个库来裁剪图像。

https://github.com/biokys/cropimage

github源码

// create explicit intent
Intent intent = new Intent(this, CropImage.class);

// tell CropImage activity to look for image to crop 
String filePath = ...;
intent.putExtra(CropImage.IMAGE_PATH, filePath);

// allow CropImage activity to rescale image
intent.putExtra(CropImage.SCALE, true);

// if the aspect ratio is fixed to ratio 3/2
intent.putExtra(CropImage.ASPECT_X, 3);
intent.putExtra(CropImage.ASPECT_Y, 2);

// start activity CropImage with certain request code and listen
// for result
startActivityForResult(intent, REQUEST_CODE_CROP_IMAGE);

【讨论】:

只有一个问题,可以不设置固定比例吗?我想让用户决定图像应该有多大 尝试评论您将宽高比值设置为额外意图的行。看看它是否有效 我试过了,但是得到了一个空指针。似乎也有这个裁剪图像功能,没有办法真正让用户裁剪未定义大小的图像 将检查源代码,看看是否能找到解决方案

以上是关于未指定大小的 Android 裁剪图像的主要内容,如果未能解决你的问题,请参考以下文章

og:图像未定义,无法下载或不够大错误*尽管*指定了图像大小

图像未裁剪为正确尺寸

ui-cropper 图像未加载

为啥我需要指定裁剪分辨率?

未指定暗淡时图像未填充画布[重复]

Android:从位图裁剪位图并设置为 ImageView src