2015-06-23 64 views
0

我需要實現自定義圖像裁剪,而不是使用系統裁剪(即「com.android.camera.action.CROP」)。我需要知道裁剪邊界框的確切位置,但如果選擇使用默認裁剪,則無法檢索此信息。此外,通過默認裁剪,位圖圖像下采樣過多。Android中自定義圖像裁剪的實現

的步驟如下:

  1. 創建從源(使用URI)的原始尺寸的位圖。 原始大小約爲4000x3000,這太大了。
  2. 用戶定義裁剪區域以提取ROI,這會導致調整原始圖像的大小以適合ImageView。 (ImageView的大小約爲700x700)
  3. 在ImageView中記錄邊界框的位置。
  4. 從原始圖像中檢索裁剪區域併爲其創建另一個位圖。
  5. 調整裁剪位圖的大小以適應圖像視圖的大小以在屏幕上顯示它。

這個方法很適合我的設備(ZTE nuoio和Android 4.3)。但是,執行步驟1時,應用程序在Android 4.4.4和Note 4上出現故障,可能是因爲內存不足錯誤。

因此,我嘗試另一種方法來創建從源圖像下采樣的位圖,而不是原始大小的位圖圖像。

我需要從原始圖像中獲得剪切區域的確切位置信息。這就是我沒有使用默認裁剪的原因。你能否幫我解決一下我的案例:

  1. 解決方案是導出原始圖像中裁剪圖像的邊界框的精確座標作爲矩陣。
  2. 如何使用上述方法解決步驟1中的內存不足錯誤。

或其他方法來實現圖像裁剪,同時知道裁切區域的確切座標形成原始圖像。

非常感謝。

+0

有[Android的許多圖像裁剪庫](https://android-arsenal.com/tag/45)。一個人可以滿足你的需求,或者它可以給你如何解決你的問題的想法。 – CommonsWare

回答