我有一个绘图应用程序,如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来填补剩余空间