我有一個繪圖應用程序,如http://www.flashperfection.com/tutorials/Mouse-Drawing-in-AS3-96618.html,用戶可以在其中選擇要繪製的筆刷大小。 我需要一種方法來確定所有的表面已被繪製。任何代碼或想法如何完成?確定繪圖應用程序剩餘多少空間
1
A
回答
3
想到的一點是,假設您的背景(空白畫布)爲白色,請在圖像中查找白色像素。
類似:
function getWhiteRatio(bitmapData:BitmapData,rect:Rectangle):Number{
var numPixels:int = rect.width * rect.height;
var white:int = 0;
var pixels:Vector.<uint> = bitmapData.getVector(rect);
for(var i:int = 0 ; i < numPixels; i++){
if(pixels[i] == 4294967295) white++;
}
return white/numPixels;
}
該功能會(與白色像素數的像素的總數的圖像內)返回該白色像素的比率。如果比例接近1,那麼您的像素大多是白色的,因此您的畫布清晰。
您可能需要使用draw()方法每隔一段時間對您的矢量(繪製API生成的)畫布的BitmapData副本進行檢查,並檢查完整畫布。
如果你有一個自定義背景(不是一個單一的顏色),那麼你就需要一個稍微不同的方法:
- 你會用繪畫2位圖(帆布面料和當前畫布)做了一個位圖數據BlendMode.DIFFERENCE。
- 計算差分位圖中的黑色像素。如果像素全是黑色,則沒有區別。黑色像素越少,畫布上的東西就越多。
HTH, 喬治
1
我的想法是通過使用像素級別的碰撞檢測來做到這一點。有一些開源框架(嘗試http://www.coreyoneil.com/Flash/CDK/documentation/),它返回覆蓋率的百分比。您可以將繪製的線條與整個表面進行比較,並檢查是否有全面覆蓋。
你將不得不檢查一個完整的腳本的文檔,但這是我的路要走。
相關問題
- 1. lmdb:如何確定剩餘空間?
- 2. 讓圖片僅佔用剩餘空間
- 3. 讓剩餘空格填充剩餘空間
- 4. Android:EditText取出剩餘空間
- 5. 填充剩餘空間CSS
- 6. 中間div佔用剩餘空間?
- 7. 如何使用jQuery獲取剩餘的剩餘空間
- 8. 如何確定unix時間戳日期之前剩餘多少天?
- 9. iPhone上的應用程序存儲空間有多少空間?
- 10. Android EditText不會佔用剩餘空間
- 11. 使用Flexbox填充剩餘空間
- 12. Windows商店應用程序佈局:ListView來填充剩餘空間
- 13. 有沒有辦法查看定時過程剩餘多少時間?
- 14. 打印訂閱剩餘多少天?
- 15. 我如何找出多少個字符適合在TextBox的剩餘空間?
- 16. 使用自動佈局空間約束時的剩餘空間
- 17. SQL Server空間查找剩餘距離
- 18. 使輸入佔據剩餘空間?
- 19. 本表中剩餘空間在哪裏?
- 20. 如何顯示localStorage的剩餘空間?
- 21. XFS設備上沒有剩餘空間
- 22. heroku數據庫中的剩餘空間?
- 23. 內容div未填滿剩餘空間
- 24. div填充剩餘空間屏幕
- 25. 填充剩餘的垂直空間
- 26. Bootstrap - 填充剩餘的垂直空間
- 27. inet_ntop:設備上沒有剩餘空間
- 28. 剩餘的空間留給項目SQL
- 29. android webview佈局取剩餘空間
- 30. 飄來div來填補剩餘空間