1、
flex 截取摄像头保存本地图片
分类: flex32010-10-07 16:54 880人阅读 评论(3) 收藏 举报
Main.xml
[xhtml] view plaincopy
1.
2. 21、136. source="1.png" mouseDown="mousedown(event)"
137. mouseUp="mouseup(event)"/>
138.
22、bjectTransformer.as(使用了高手写的截取转化BitmapData类) [java] view plaincopy 1. package 2. { 3. import flash.display.BitmapData; 4. import flash.display.DisplayObject; 5. import flash.geom.Matrix; 6. import flash.geom.Rectangle; 7. 8. /** 9. * DisplayObje
23、ctTransformer 类有两个静态函数:一个用来裁剪矩形;一个用来裁剪任意形状。 10. */ 11. public class DisplayObjectTransformer 12. { 13. 14. /** 15. * 构造函数 16. *
本类所有方法均为静态方法,不应创建实例。
17. */ 18. public function DisplayObjectTransformer()24、 19. { 20. 21. } 22. 23. 24. 25. //------------------------------------------------------------ 26. // 27. // 裁剪 28. // 29. //---------------------------------------------
25、 30. /** 31. * 裁剪指定矩形区域并返回一个包含结果的 BitmapData 对象。 32. * 33. * @param target 需要裁剪的显示对象。 34. * 35. * @param width 位图图像的宽度,以像素为单位。 36. * 37. * @param height 位图图像的高度,以像素为单位。 38. * 39.
26、 * @param distanceX 切割矩形左上角的点到显示对象矩形左上角的点的水平距离。注意:左上角的点不一定就是注册点(0, 0)外,变形过的显示对象就是一个例外。 40. * 41. * @param distanceY 切割矩形左上角的点到显示对象矩形左上角的点的垂直距离。注意:左上角的点不一定就是注册点(0, 0)外,变形过的显示对象就是一个例外。 42. * 43. * @param transparent 指定裁剪后的位图图像是否支持每个像素具有不同的透明度。默认值为
27、true(透明)。若要创建完全透明的位图,请将 transparent 参数的值设置为 true,将 fillColor 参数的值设置为 0x00000000(或设置为 0)。将 transparent 属性设置为 false 可以略微提升呈现性能。 44. * 45. * @param fillColor 用于填充裁剪后的位图图像区域背景的 32 位 ARGB 颜色值。默认值为 0x00000000(纯透明黑色)。 46. * 47. * @returns 返回裁剪后的 BitmapData 对象。
28、 48. */ 49. public static function cutOutRect( target:DisplayObject, distanceX:Number, distanceY:Number, width:Number, height:Number, transparent:Boolean = true, fillColor:uint = 0x00000000 ):BitmapData 50. { 51. var m:Matrix = target.transform.matrix;
29、 52. m.tx -= target.getBounds( target.parent ).x + distanceX; 53. m.ty -= target.getBounds( target.parent ).y + distanceY; 54. 55. var bmpData:BitmapData = new BitmapData( width, height, transparent, fillColor ); 56. bmpData.
30、draw( target, m ); 57. 58. return bmpData; 59. } 60. 61. 62. 63. /** 64. * 超级裁剪工具!可裁剪任意形状!给定一个裁剪目标和一个模板,就可根据模板裁剪出形状相配的 BitmapData 数据。 65. * 66. * @param target 需要裁剪的显示对象。 67.
31、 * 68. * @param template 裁剪模板,可以是任意形状。 69. * 70. * @returns 返回裁剪后的 BitmapData 对象。 71. */ 72. public static function cutOutSuper( target:DisplayObject, template:DisplayObject ):BitmapData 73. { 74. var rectTar
32、get:Rectangle = target.transform.pixelBounds; 75. var rectTemplate:Rectangle = template.transform.pixelBounds; 76. var targetBitmapData:BitmapData = DisplayObjectTransformer.cutOutRect( target, 0, 0, rectTarget.width, rectTarget.height, true, 0x00000000 ); 77.
33、 var templateBitmapData:BitmapData = DisplayObjectTransformer.cutOutRect( template, 0, 0, rectTemplate.width, rectTemplate.height, true, 0x00000000 ); 78. 79. for( var pixelY:int = 0; pixelY < rectTemplate.height; pixelY++ ) 80. { 81.
34、 for( var pixelX:int = 0; pixelX < rectTemplate.width; pixelX++ ) 82. { 83. if( templateBitmapData.getPixel( pixelX, pixelY ) != 0 ) 84. { 85. var color:uint = targetBitmapData.getPixel32( pixelX + rectTe
35、mplate.x - rectTarget.x, pixelY + rectTemplate.y - rectTarget.y ); 86. templateBitmapData.setPixel32( pixelX, pixelY, color ); 87. } 88. } 89. } 90. 91. return templateBitmapData; 92. 93. } 94. 95. 96. 97. } 98. } 分享到: · 上一篇:SQL2005服务无法启动
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818