续:使用FLEX为上传的图片添加水印


在上篇文章中我们提到了如何简单的使用FLEX实现在线拍照功能,如果我们想在此基础之上为拍摄好的照片增加水印功能,在FLEX中如何实现呢?

实现一个类,通GetWaterMark()方法把我们要嵌入的水印图片转换为BitmapData类型。

 1 package  name.domain.flywolf
 2 {
 3    import flash.display.Bitmap;
 4    import flash.display.BitmapData;
 5    import flash.display.Sprite;
 6    
 7    public class WaterMark extends Sprite
 8    {
 9        [Embed(source='/assets/logo.png')]
10        public var mark:Class;
11        
12        public function GetWaterMark():BitmapData {
13            var pic:Bitmap = new mark();
14            return pic.bitmapData;
15        }

16    }

17}

改写上篇文章中说到的getSnapshotJPEG()方法

1                 var jpegEnc:JPEGEncoder  =   new  JPEGEncoder( 100 );
2                 var snap:BitmapData  =  cameraStream.getSnapshotBitmapData();
3                 waterMark  =   new  WaterMark();
4                 snap.draw(waterMark.GetWaterMark(),  new  Matrix());
5                 var jpegData:ByteArray  =  jpegEnc.encode(snap);

具体的水印位置属性等等可以自己参考FLEX2帮助手册,调整相关参数。
这样就可以完成了,很简单是吧? :)

由此我们还可以延伸到很多方面,例如在线大头贴等等。 欢迎探讨。

你可能感兴趣的:(Flex)