主要原理也是使用2进制载入,再按24位BMP文件格试进行读取并转换成BitmapData再显示出来,只要读入BMP图片转换成二进制,再转成BitmapData,最后把获取位图数据的Bitmap传给Image源,让Image控件显示出来。 下面是我的一个Flex工程: <?xml version="1.0"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ import mx.core.UIComponent; import mx.core.BitmapAsset; //导入BMPDecoder import imageDecoder.BMPDecoder; private function showimage():void { loadBMPFile("../test.bmp"); } private function loadBMPFile( url:String ):void { var loader:URLLoader = new URLLoader(); //指定loader以二进制返回数据 loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener( Event.COMPLETE, onCompleteLoad ); loader.load( new URLRequest( url ) ); } private function onCompleteLoad( e:Event ):void { var loader:URLLoader = e.target as URLLoader; var decoder:BMPDecoder = new BMPDecoder(); //将二进制数据转换成BitmapData var bd:BitmapData = decoder.decode( loader.data ); //用来显示效果的Bitmap获取位图数据,图片平滑 var myBitmap:Bitmap = new Bitmap(bd,"auto",true); myImage.source=myBitmap; } ]]> </mx:Script> <mx:Button id="showImage" label="showimage" click="showimage();"/> <mx:Image id="myImage" /> </mx:Application>
转载于:https://www.cnblogs.com/jsbrml/archive/2011/01/25/1944414.html