FLEX中显示类型为BMP的图片

本文介绍如何在FLEX中使用自定义类BMPDecode.as处理并显示BMP格式的图片。通过创建BitmapData并将数据传递给Bitmap来实现图片显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FLEX的Image控件是不能直接显示BMP图片的,要进过一些简单而又复杂的处理

首先需要写一个类BMPDecode.as(附件中已上传)

使用方法如下(红色字体为主要代码)

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
	width="400" height="300"
	borderStyle="none"
	>
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.effects.Zoom;
			import mx.core.UIComponent;
			import mx.core.BitmapAsset;
			[Bindable]public var imageSource:String="assets/uploadImage/default.jpg";
			//var request:URLRequest = new URLRequest("/westGameBackend/showImageController.htm?flag=animal&targetID=86");
			//var load:URLLoader=new URLLoader(request);
			//[Bindable]public var imageSource:String="/westGameBackend/showImageController.htm?flag=animal&targetID=86";
			private function changeBig():void{
				var zoom:Zoom=new Zoom();
				zoom.target=this;
				//X坐标放大倍数
     			zoom.zoomWidthTo = 2 ;
     			//Y坐标放大倍数
     			zoom.zoomHeightTo =2 ;
     			
     			zoom.play();
			}
			public function into(url:String):void{
				url=encodeURI(url);
				var loader:URLLoader = new URLLoader();
				    //指定loader以二进制返回数据
				loader.dataFormat = URLLoaderDataFormat.BINARY;
				loader.addEventListener( Event.COMPLETE, onCompleteLoad );
				loader.load( new URLRequest( url ) );
			}
			public function onCompleteLoad( e:Event ):void {
			   var loader:URLLoader = e.target as URLLoader;
			   var decoder:BMPDecode = new BMPDecode();
			   //将二进制数据转换成BitmapData
			   var bd:BitmapData = decoder.decode( loader.data );
			   //用来显示效果的Bitmap获取位图数据,图片平滑
			   var myBitmap:Bitmap = new Bitmap(bd,"auto",true);
			   theImage.source=myBitmap;
			}
			private function imageIO():void{
				this.dispatchEvent(new Event("imageIO"));
			}
		]]>
	</mx:Script>
	<mx:Image width="100%" height="100%" id="theImage" source="{encodeURI(imageSource)}" ioError="imageIO();" horizontalAlign="center" verticalAlign="middle" toolTip="点击放大" click="changeBig();"/>
</mx:Canvas>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值