android编程之图片剪裁

在一些应用产品中,会有拍照自定义头像的功能。一般产品头像都是高宽一致的,但手机拍出来的照片不是正方形的,所以这里就需要对照片进行剪裁。

		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setType("image/*");
		// 设置数据,bitmap
		intent.putExtra("data", data);
		// 设置裁剪
		intent.putExtra("crop", "true");
		// aspectX aspectY 是宽高的比例
		intent.putExtra("aspectX", 1);
		intent.putExtra("aspectY", 1);
		// outputX outputY 是裁剪图片宽高
		intent.putExtra("outputX", 128);
		intent.putExtra("outputY", 128);
		intent.putExtra("return-data", true);

然后再通过onActivityResult取得剪裁后的数据:
Bitmap photo = data.getParcelableExtra("data");


这样就完成剪裁功能了


补充:
如果是从文件读取的图片,可以直接放入File对象,将intent.setType("image/*");和intent.putExtra("data", data);换成:
intent.setDataAndType(Uri.fromFile(tempFile), "image/*");

如果想直接保存返回后的图像,也可在增加一条:
File tempFile = new File("/sdcard/camera.jpg");
intent.putExtra("output", Uri.fromFile(tempFile));// 保存到原文件
intent.putExtra("outputFormat", "JPEG");// 返回格式

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值