2012-11-19 49 views
0

我的應用程序的一部分涉及用戶繪製圖像,稍後將它們串在一起的PDF中。用戶可以自由使用整個屏幕進行繪製。一旦用戶完成繪圖,我想在將圖像添加到PDF之前裁剪所有的空白區域。這是我遇到問題的地方。我想到了兩種不同的方法來確定可裁剪空白的位置,並且都顯得笨拙。從用戶繪製的圖像中刪除空白

我的第一個想法是,如果事件已經離開盒子到目前爲止,有手寫筆記錄的運動事件。如果有的話,我會擴大這個盒子以適應這個。不幸的是,每次出現運動事件都會影響性能時,我可以看到輪詢。我不能只看上下的事件,因爲用戶可以繪製像字母V的東西。

然後我想我可以看看所有的像素(使用getPixel()),看看最高,最低,最右邊和最左邊的黑色像素是。再次,這似乎是一個非常低效的方式找到盒子。我確定我可以跳過一些像素來提高性能,但我不能跳過太多。

有沒有一個標準的做我想做的事情?我一直無法找到任何東西。

回答

1

如果用戶正在繪製,您是不是已經在處理onTouchEvent回調以捕獲繪圖事件?如果是這樣,保留minX,maxX,minY和maxY不應該是個大問題,並根據這些值檢查每個記錄的繪圖事件。

+0

我只是試過這個,它很好。這感覺很奇怪,但我沒有注意到性能下降。謝謝。 – clavio

2

您可以在編輯器中記錄該像素已被繪製的位置,更新X和Y的最大值和最小值,然後稍後使用它們裁剪圖像。

+0

這就是我只想回答。檢查最大X和Y,並刪除任何其他 – Goot