Flex 图片和文字转化为BitmapData数据

项目:影像插件(Flex版)
功能:在影像上添加年份文字

代码:
<?xml version="1.0" encoding="utf-8"?> 
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" 
xmlns:mx="library://ns.adobe.com/flex/mx" creationComplete="group1_creationCompleteHandler(event)"> 
<fx:Script> 
<![CDATA[ 
import mx.binding.utils.ChangeWatcher; 
import mx.controls.Alert; 
import mx.controls.Image; 
import mx.core.IVisualElement; 
import mx.core.UIComponent; 
import mx.events.FlexEvent; 

[Bindable] 
public var sourceImg:String=""; 
[Bindable] 
public var sourceLabel:String=""; 

private var ld:Loader = new Loader(); 
protected function group1_creationCompleteHandler(event:FlexEvent):void 

ld.load(new URLRequest(sourceImg)); 
ld.contentLoaderInfo.addEventListener(Event.COMPLETE , loadComplete123); 
ChangeWatcher.watch(this,"sourceImg",changeImg); 

public function changeImg(event:Event):void 

ld.load(new URLRequest(sourceImg)); 


public var bitmap:Bitmap; 
public var bitmapdata:BitmapData;//图片 
public var myBitmapData:BitmapData;//文字 
public var bmp:Bitmap; 
public var bmp1:Bitmap; 
public var content:UIComponent = new UIComponent();//师兄用的Canvas,我用了一下UIComponent替换;它们都在mx.core.Container下 
private function loadComplete123(event:Event):void 

try{ 
content.removeChild(bmp); 
content.removeChild(bmp1); 
}catch(e:Error){} 

var loaderInfo:LoaderInfo = event.target as LoaderInfo; 
bitmap = loaderInfo.content as Bitmap; 
if(bitmap) 
leftImg.visible=false; 
else 
leftImg.visible=true; 
bitmapdata = new BitmapData(bitmap.width, bitmap.height, true, 16777215); 
bitmapdata.draw(bitmap.bitmapData, null, null, BlendMode.NORMAL, null, true); 
//转化成图片 
bmp = new Bitmap(bitmapdata); 
bmp.width=bcContent.width*0.99; 
bmp.height=bcContent.height*.98; 
content.addChild(bmp); 

//文字:年份 
var tf:TextField = new TextField(); 
tf.text = sourceLabel; 
tf.textColor=16711680; 
tf.border = false; 
tf.background = false; 
myBitmapData = new BitmapData(250,120 ,true,0x00000000); 
myBitmapData.draw(tf); 
bmp1= new Bitmap(myBitmapData); 
bmp1.width=this.width; 
bmp1.height=this.height; 
content.addChild(bmp1); //文字后添加,否则会被图片覆盖

bcContent.addElement(content); 
bitmap.bitmapData.dispose(); 


]]> 
</fx:Script> 
<fx:Declarations> 
</fx:Declarations> 
<s:BorderContainer id="bcContent" backgroundImage="{sourceImg}" width="100%" height="100%" backgroundAlpha="0" borderVisible="false" horizontalCenter="0" verticalCenter="0"> 
<mx:Image id="leftImg" width="100%" height="100%" source="images/noImage.jpg" visible="false"/> 
</s:BorderContainer> 
</s:Group> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值