flex 截取摄像头保存本地图片

更新时间:2024-05-28 10:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

flex 截取摄像头保存本地图片 分类: flex32010-10-07 16:54 880人阅读 评论(3) 收藏 举报 Main.xml

[xhtml] view plaincopy

1.

2.

fontSize=\ creationComplete=\> 3. 4.

5. 6. 132.

133. 134.

135.

击保存图片到本地\

136. source=\ mouseDown=\ 137. mouseUp=\/>

138. 139.

140.

DisplayObjectTransformer.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. * DisplayObjectTransformer 类有两个静态函数:一个用来裁剪矩形;一个用来裁剪

任意形状。 10. */

11. public class DisplayObjectTransformer 12. { 13. 14. /**

15. * 构造函数

16. *

本类所有方法均为静态方法,不应创建实例。

17. */

18. public function DisplayObjectTransformer() 19. { 20. 21. } 22. 23. 24.

25. //------------------------------------------------------------ 26. // 27. // 裁剪 28. //

29. //------------------------------------------------------------ 30. /**

31. * 裁剪指定矩形区域并返回一个包含结果的 BitmapData 对象。 32. *

33. * @param target 需要裁剪的显示对象。 34. *

35. * @param width 位图图像的宽度,以像素为单位。 36. *

37. * @param height 位图图像的高度,以像素为单位。 38. *

39. * @param distanceX 切割矩形左上角的点到显示对象矩形左上角的点的水平距离。

注意:左上角的点不一定就是注册点(0, 0)外,变形过的显示对象就是一个例外。 40. *

41. * @param distanceY 切割矩形左上角的点到显示对象矩形左上角的点的垂直距离。

注意:左上角的点不一定就是注册点(0, 0)外,变形过的显示对象就是一个例外。 42. *

43. * @param transparent 指定裁剪后的位图图像是否支持每个像素具有不同的透明

度。默认值为 true(透明)。若要创建完全透明的位图,请将 transparent 参数的值设置为 true,将 fillColor 参数的值设置为 0x00000000(或设置为 0)。将 transparent 属性设置为 false 可以略微提升呈现性能。 44. *

45. * @param fillColor 用于填充裁剪后的位图图像区域背景的 32 位 ARGB 颜色

值。默认值为 0x00000000(纯透明黑色)。

46. *

47. * @returns 返回裁剪后的 BitmapData 对象。 48. */

49. public static function cutOutRect( target:DisplayObject, distanceX:N

umber, distanceY:Number, width:Number, height:Number, transparent:Boolean = true, fillColor:uint = 0x00000000 ):BitmapData 50. {

51. var m:Matrix = target.transform.matrix;

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, transpar

ent, fillColor );

56. bmpData.draw( target, m ); 57.

58. return bmpData; 59. } 60. 61. 62. 63. /**

64. * 超级裁剪工具!可裁剪任意形状!给定一个裁剪目标和一个模板,就可根据模板裁

剪出形状相配的 BitmapData 数据。 65. *

66. * @param target 需要裁剪的显示对象。 67. *

68. * @param template 裁剪模板,可以是任意形状。 69. *

70. * @returns 返回裁剪后的 BitmapData 对象。 71. */

72. public static function cutOutSuper( target:DisplayObject, template:D

isplayObject ):BitmapData 73. {

74. var rectTarget:Rectangle = target.transform.pixelBounds; 75. var rectTemplate:Rectangle = template.transform.pixelBounds; 76. var targetBitmapData:BitmapData = DisplayObjectTransformer.cutOu

tRect( target, 0, 0, rectTarget.width, rectTarget.height, true, 0x00000000 );

77. var templateBitmapData:BitmapData = DisplayObjectTransformer.cut

OutRect( template, 0, 0, rectTemplate.width, rectTemplate.height, true, 0x00000000 ); 78.

79. for( var pixelY:int = 0; pixelY < rectTemplate.height; pixelY++

)

80. {

81. 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

+ rectTemplate.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服务无法启动

本文来源:https://www.bwwdw.com/article/jr67.html

Top