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


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

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

 1package 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帮助手册,调整相关参数。
这样就可以完成了,很简单是吧? :)

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

posted on 2007-06-11 17:30  andyran  阅读(1470)  评论(0编辑  收藏  举报

导航