andyran

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

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

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2021-07-12
  • 2022-12-23
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-04
  • 2021-06-04
  • 2021-12-05
  • 2021-12-05
相关资源
相似解决方案