Android自带图片裁剪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android自带图片裁剪相关的知识,希望对你有一定的参考价值。

方法:

    private void cutPhoto(Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        intent.putExtra("crop", true);
        // 裁剪框的比例,1:1
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        // 裁剪后输出图片的尺寸大小
        intent.putExtra("outputX", 250);
        intent.putExtra("outputY", 250);

        intent.putExtra("outputFormat", "JPEG");// 图片格式
        intent.putExtra("noFaceDetection", true);// 取消人脸识别
        intent.putExtra("return-data", true);
        startActivityForResult(intent, REQUEST_CUT_PHOTO);
    }

接收方法:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK)
            switch (requestCode) {
                case REQUEST_CUT_PHOTO:
                    if (null != data) {
                        Bitmap bitmap = data.getParcelableExtra("data");
                        upload(bitmap);
                    }
                    break;
            }
    }

 

大尺寸黑边问题:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null)
            .setType("image/*")
            .putExtra("crop", "true")
            .putExtra("aspectX", width)
            .putExtra("aspectY", height)
            .putExtra("outputX", width)
            .putExtra("outputY", height)
            .putExtra("scale", true)//黑边
            .putExtra("scaleUpIfNeeded", true)//黑边
            .putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f))
            .putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());

 

以上是关于Android自带图片裁剪的主要内容,如果未能解决你的问题,请参考以下文章

Android平台上裁剪m4a

调用android系统的图片裁剪方式问题和解决方式

如何从 RCNN 中裁剪分割的对象?

android 怎么裁剪drawable

Android端上传图片到后台,存储到数据库中 详细代码

Android:在捕获或从图库中挑选后裁剪图像