1

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

我现在做什么(为了更好地查看我省略了 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?

4

1 回答 1

2

改用这个库来裁剪图像。

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);
于 2013-10-11T15:58:52.710 回答