android系统裁剪图片

android系统图片裁减
xta Options Table for image/* crop:

附加选项 数据类型 描述
crop String 发送裁剪信号
aspectX int X方向上的比例
aspectY int Y方向上的比例
outputX int 裁剪区的宽
outputY int 裁剪区的高
scale boolean 是否保留比例
return-data boolean 是否将数据保留在Bitmap中返回
data Parcelable 相应的Bitmap数据
circleCrop String 圆形裁剪区域?
MediaStore.EXTRA_OUTPUT (“output”) URI 将URI指向相应的file:///…,详见代码示例
// 开始return-data设置了true的话直接返回bitmap,可能会很占内存
intent.putExtra(“return-data”, true);
这样返回的bitmap是还存在内存中的缩略图,所以很模糊,后来改为把剪切的图片保存起来不直接返回bitmap一切就OK了


private Uri imageUri;  
private static final String IMAGE_FILE_LOCATION = Constants.ALBUM_PATH+"/temp.jpg";  

imageUri = Uri.fromFile(new File(IMAGE_FILE_LOCATION));  

// 剪切图片 
    private void crop(Uri uri) {  

        // 裁剪图片意图  
        Intent intent = new Intent("com.android.camera.action.CROP");  
        intent.setDataAndType(uri, "image/*");  

        intent.putExtra("crop", "true");  
        // 裁剪框的比例,1.5:1  
        intent.putExtra("aspectX", 16);  
        intent.putExtra("aspectY", 9);  
        // 裁剪后输出图片的尺寸大小  
        intent.putExtra("outputX", 800);  
        intent.putExtra("outputY", 450);  

        // intent.putExtra("outputFormat", "JPEG");// 图片格式  
        //intent.putExtra("noFaceDetection", true);// 取消人脸识别  
        intent.putExtra("return-data", false);  
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);  
        intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());  
        startActivityForResult(intent, SELECT_PIC_BY_CUT_PHOTO);  
    }  

@Override  
    public void onActivityResult(int requestCode, int resultCode, Intent data) {  
        switch (requestCode) {  
            case SELECT_PIC_BY_CUT_PHOTO:  
//                从剪切图片返回的数据  
                if (resultCode == Activity.RESULT_OK) {  
                    if (data != null) {  
                        if (imageUri != null) {  
                            Bitmap bitmap = ImageUtils.decodeUriAsBitmap(getActivity(), imageUri);  
                            // 把解析到的位图显示出来  
                            advanceDialog.setPic(bitmap);  
                            advanceDialog.dismissPicDialog();  
                            String imageurl = Constants.ALBUM_PATH;  
                            saveMyBitmap(imageurl, bitmap);  
                        }  

                    }  

                }  
                break;  
        }  

        super.onActivityResult(requestCode, resultCode, data);  
    }  
private Bitmap decodeUriAsBitmap(Uri uri) {  
        Bitmap bitmap = null;  
        try {  
            // 先通过getContentResolver方法获得一个ContentResolver实例,  
            // 调用openInputStream(Uri)方法获得uri关联的数据流stream  
            // 把上一步获得的数据流解析成为bitmap  
            bitmap = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(uri));  
        } catch (FileNotFoundException e) {  
            e.printStackTrace();  
            return null;  
        }  
        return bitmap;  
    }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值