阅读更多
AS3 图片加水印
先看代码 后面附上解析!!
var addSp:Sprite=new Sprite();//结合图片与水印的容器
var txt:TextField=new TextField();//水印文字框
var imageBit:BitmapData=new kuImage(0,0);//在库中有链接导出为:kuImage的图片
var format:TextFormat=new TextFormat();//字体格式
format.size=22;
format.color=0xFF00FF;
txt.defaultTextFormat=format;
txt.text="系统水印";//默认给的水印文字
var shuiyingBit:BitmapData=new BitmapData(txt.textWidth,txt.textHeight,true,0x00000000);
shuiyingBit.draw(txt);
var drawSp:Shape=new Shape();
drawSp.graphics.beginBitmapFill(shuiyingBit);
drawSp.graphics.drawRect(0,0, shuiyingBit.width, shuiyingBit.height);
drawSp.graphics.endFill();
drawSp.x=imageBit.width-shuiyingBit.width;
drawSp.y=imageBit.height-shuiyingBit.height;
addSp.addChild(new Bitmap(imageBit));
addSp.addChild(drawSp);
addChild(addSp);
解析:
曾想用 BitmapData里面的merge方法 但不知道为什么 混合后 水印下面总是有一个背景色。merge后面的四个参数不知道怎么填了 或者说这个混合无法避免产生背景色
上面的方法可行 就稍繁琐了点 用BitmapData中的draw方法 将TextField对象转化成BitmapData对象。新建drawSp矢量容器 将水印填充到在这个容器里面
建立addSp容器 用来将水印和图片的
再建一个BitmapData对象 将addSp容器转化成BitmapData对象
然后一方面你可以保存此张加水印的图片了!
保存这里就不写了 保存用的方法有 JPGEncoder 方法转化成jpg二进制 然后用FileReference类保存到本地硬盘!