簡體   English   中英

如何裁剪其URI在Android中已知的圖像?

[英]How do I crop an image whose URI is known in Android?

我希望在圖像視圖中顯示的圖像被選擇為具有特定部分(並且僅選擇的部分需要突出顯示而其他部分需要半透明),並且該部分也可以根據需要調整大小或者由用戶在觸摸事件上完成。

現在,需要將圖像的選定部分弄皺,然后顯示並保存裁剪后的圖像。

編輯:

我使用Intent打開圖像並使用intent.putExtra(“crop”,“true”)裁剪它;

但是在傳遞意圖的同時,我想打開其URI已知的圖像,而不是打開整個圖庫的專輯。

任何人都可以建議,我如何通過意圖傳遞打開圖像打開特定的URI。 提前致謝。

關於問題的最后一部分,如果您使用的是最新的Gingerbread(2.3.3,API級別10),則可以使用BitmapRegionDecoder來裁剪圖像。

它很有用,因為在此API存在之前,您必須在裁剪之前將整個圖像加載到內存中。 對於5mpix和8mpix相機,如果沒有子采樣,這通常是不可能的(即裁剪后的圖像會失去很多分辨率)。

更新:在編輯問題並更准確地描述問題后更改了我的答案。

您面臨的問題有很長的歷史,也是在SO:

無法在android中找到com.android.camera.CropImage活動

一個答案描述了您的需求。 請注意,您使用的是不屬於官方SDK的意圖,您可能會遇到不同類型的問題。 我經歷的問題是在相機拍攝圖像后立即使用裁剪。 此外,它不兼容不同的Android版本,所以如果你讓它工作1.5也許它不適用於2.3。 其他有用的鏈接:

http://groups.google.com/group/android-developers/browse_thread/thread/2dd647523926192c/569f36b5b28f2661?lnk=gst&q=Crop+image+intent#569f36b5b28f2661

http://groups.google.com/group/android-developers/browse_thread/thread/2dd647523926192c/dcbe5aef29eddad6?lnk=gst&q=Crop+image+intent#dcbe5aef29eddad6

http://groups.google.com/group/android-developers/browse_thread/thread/d7b6a133c164aa17/184bf3b85da2ce58?lnk=gst&q=Crop+image+intent#184bf3b85da2ce58

看看我對這個問題的回答 它不涉及問題的觸摸調整大小方面,而是處理在原始圖像上繪制圖像的部分。

底線是,您不想使用ImageView,因為這主要用於顯示具有各種縮放屬性的靜態圖像。 最好使用帶有重寫draw()方法的自定義視圖。

用於裁剪圖像

private void cropImage() {
    // Use existing crop activity.
    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setDataAndType(capturedImageUri, IMAGE_UNSPECIFIED);

    // Specify image size
    intent.putExtra("outputX", IMAGE_DIMENSION);
    intent.putExtra("outputY", IMAGE_DIMENSION);

    // Specify aspect ratio, 1:1
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);
    intent.putExtra("scale", true);
    intent.putExtra("return-data", true);
    // REQUEST_CODE_CROP_PHOTO is an integer tag you defined to
    // identify the activity in onActivityResult() when it returns
    startActivityForResult(intent, REQ_CODE_CROP_PHOTO);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM