我有一個繪圖應用程序,如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. 填充剩餘空間(CSS)
- 5. ImageView填充剩餘空間
- 6. Android:EditText取出剩餘空間
- 7. 固定左側導航+剩餘空間
- 8. 中間div佔用剩餘空間?
- 9. 如何使用jQuery獲取剩餘的剩餘空間
- 10. 如何確定unix時間戳日期之前剩餘多少天?
- 11. iPhone上的應用程序存儲空間有多少空間?
- 12. 如何指定一個視圖應占用剩餘的可用空間?
- 13. 在CSS中使用剩餘空間
- 14. 使用Flexbox填充剩餘空間
- 15. Android EditText不會佔用剩餘空間
- 16. 如何判斷多少剩餘空間可用於在TCP Pcap.Net分組數據
- 17. 讓RecyclerView後空視圖佔用剩餘空間?
- 18. Windows商店應用程序佈局:ListView來填充剩餘空間
- 19. 有沒有辦法查看定時過程剩餘多少時間?
- 20. 我的頻道剩餘多少容量?
- 21. 打印訂閱剩餘多少天?
- 22. 將剩餘端點重定向到web應用程序S3
- 23. 我如何找出多少個字符適合在TextBox的剩餘空間?
- 24. 使用自動佈局空間約束時的剩餘空間
- 25. 填寫所有剩餘空間
- 26. SQL Server空間查找剩餘距離
- 27. 如何讓div填充剩餘空間?
- 28. 內容div未填滿剩餘空間
- 29. heroku數據庫中的剩餘空間?
- 30. div填充剩餘空間屏幕