com.android.camera.action.CROP裁剪图片系统不可拉伸参数
时间: 2023-08-06 16:08:40 浏览: 201
`com.android.camera.action.CROP` 是 Android 中一个用于裁剪图片的系统 intent,可以通过该 intent 启动系统自带的图片裁剪应用进行图片裁剪。在裁剪图片时,可以通过设置参数来控制裁剪框的大小和位置,但不能直接设置裁剪框的拉伸行为。
不过,可以通过设置裁剪框的宽高比例来间接控制裁剪框的拉伸行为。具体来说,在调用 `com.android.camera.action.CROP` intent 时,可以通过设置以下参数来指定裁剪框的宽高比例:
- `aspectX` 和 `aspectY`:分别表示裁剪框的宽高比例,必须为正整数。
通过设置这两个参数,可以控制裁剪框的宽高比例,从而实现一定程度上的拉伸或收缩。但需要注意的是,这种方式并不能精确控制裁剪框的大小和位置,因为裁剪框的实际大小和位置还受到图片原始宽高比例和屏幕分辨率等因素的影响。
相关问题
com.android.camera.action.CROP设置不可以拉伸
在使用 `com.android.camera.action.CROP` 进行图片裁剪时,如果希望输出的图片尺寸与裁剪区域的宽高比一致,可通过设置 `setAspectRatio()` 方法来实现。在此基础上,如果不希望输出的图片被拉伸,可以设置 `setMin()` 和 `setMax()` 方法的值来限制裁剪区域的最小和最大尺寸,如下所示:
```java
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 600);
intent.putExtra("outputY", 600);
intent.putExtra("scale", true);
intent.putExtra("scaleUpIfNeeded", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
// 设置裁剪区域的最小和最大尺寸
intent.putExtra("minCropWidth", 400);
intent.putExtra("minCropHeight", 400);
intent.putExtra("maxCropWidth", 800);
intent.putExtra("maxCropHeight", 800);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("return-data", false);
startActivityForResult(intent, requestCode);
```
在上面的代码中,`setMin()` 方法设置裁剪区域的最小尺寸为 400x400,`setMax()` 方法设置裁剪区域的最大尺寸为 800x800,这样就可以限制裁剪区域的宽高比,从而避免输出图片被拉伸的情况。
com.android.camera.action.CROP设置不可以缩放
在Android中使用 `com.android.camera.action.CROP` 进行裁剪时,可以使用 `setAspectRatio()` 方法来设置裁剪区域的宽高比,而不需要使用 `setOutput()` 方法设置输出图片的尺寸。同时,如果希望保留原图的尺寸不进行缩放,可以设置 `setOutputX()` 和 `setOutputY()` 方法的值为原图的宽度和高度,如下所示:
```java
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 600);
intent.putExtra("outputY", 600);
intent.putExtra("scale", true);
intent.putExtra("scaleUpIfNeeded", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("return-data", false);
startActivityForResult(intent, requestCode);
```
在上面的代码中,`setOutputX()` 和 `setOutputY()` 的值设置为600,表示输出的图片尺寸与原图尺寸一致。同时,`scale` 参数设置为 `true` 表示允许缩放,`scaleUpIfNeeded` 参数设置为 `true` 表示如果输出尺寸比输入尺寸大,则进行缩放。最后,`setOutputFormat()` 方法设置输出图片的格式。
阅读全文