Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中裁剪图像?_Android_Image_Crop - Fatal编程技术网

如何在android中裁剪图像?

如何在android中裁剪图像?,android,image,crop,Android,Image,Crop,事实上,现在我正在继续我的裁剪部分,因为我需要在所有四个侧面裁剪我的图像高度和宽度,但是我不能选择我在本教程中选择的高度 我需要的是完全像上面的图像,以调整所有方面 谁能帮我解决这个问题。你可以使用这个功能 private void doCrop(Uri mImageCaptureUri) { this.mImageCaptureUri = mImageCaptureUri; Intent intent = new Intent("com.android.camera.acti

事实上,现在我正在继续我的裁剪部分,因为我需要在所有四个侧面裁剪我的图像高度和宽度,但是我不能选择我在本教程中选择的高度

我需要的是完全像上面的图像,以调整所有方面


谁能帮我解决这个问题。

你可以使用这个功能

private void doCrop(Uri mImageCaptureUri) {

    this.mImageCaptureUri = mImageCaptureUri;
    Intent intent = new Intent("com.android.camera.action.CROP");
    // intent.setType("image/*");
    intent.setDataAndType(mImageCaptureUri, "image/*");
    List<ResolveInfo> list = getPackageManager().queryIntentActivities(
            intent, 0);
    int size = list.size();

    if (size == 0) {
        // Toast.makeText(this,
        // "Can not find image crop section",Toast.LENGTH_SHORT).show();
        return;
    } else {
        // Toast.makeText(this,
        // "image crop section started..",Toast.LENGTH_SHORT).show();

        intent.setData(mImageCaptureUri);

        // Bitmap bitmap_1 = readBitmap(mImageCaptureUri);
        try {
            bitmap = MediaStore.Images.Media.getBitmap(
                    this.getContentResolver(), mImageCaptureUri);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }// = bitmap_1;
        new MydataLoader().execute(function.sendimage);
        // changed
        intent.putExtra("outputX", 200);
        intent.putExtra("outputY", 200);
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        intent.putExtra("scale", true);
        intent.putExtra("return-data", true);

        // Log.e("size",""+size);
        if (size >= 1) {
            // Toast.makeText(MerchantLogin.this,
            // "Cropimage got called with size"+ size,
            // Toast.LENGTH_SHORT).show();
            Intent i = new Intent(intent);
            ResolveInfo res = list.get(0);

            i.setComponent(new ComponentName(res.activityInfo.packageName,
                    res.activityInfo.name));

            startActivityForResult(i, CROP_FROM_CAMERA);

        } else {
            // Toast.makeText(MerchantLogin.this,
            // "Cropimage not get called", Toast.LENGTH_SHORT).show();
        }

    }
}

如果可以使用第三方库,则调用intent com.android.camera.action.crop的裁剪动作

您可以尝试使用此

这是一个伟大的图像裁剪库。我主要在我的应用程序中使用它。 以下是正在运行的库的屏幕截图:

我希望你能发现它有用。干杯

Intent com.android.camera.action.CROP不是标准的android Intent,有许多设备不支持此意图。请参考我在SO帖子中的答案。我正在使用github中的库进行裁剪。

尝试此库:

对于正方形:

intent.putExtra(CropImage.ASPECT_X, 2);
intent.putExtra(CropImage.ASPECT_Y, 2);
对于矩形:

intent.putExtra(CropImage.ASPECT_X, 3);
intent.putExtra(CropImage.ASPECT_Y, 2);

我会尝试一下,让我知道我找到的最好的图片库是什么。看这个。