android編程之圖片剪裁

openkk 12年前發布 | 33K 次閱讀 Android 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");// 返回格式

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!