我把一个 最初jpg图片 二进制数据的头取下固定字节存到我的flash程序里, 然后把这个图片剩下的部分二进制数据存放到数据库里面,当我需要这张图片时,我就从数据库里把这张图片 以二进制方式 下载到程序里,然后再加上程序里存放的固定头部,得到最初图片的二进制字节数组,然后我怎么把这个字节数组转换成最原先的图片呢?附代码如下: //发出请求 var url; url = “请求文件的网络路径,对不起不能公开,请谅解”; trace(url); var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE,loadBackComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, backIoErrorHandler); loader.load(new URLRequest(url)); trace("back request is over"); //请求得到数据 private function loadBackComplete( evt:Event ) { //1 能得到数据,并且是对的 var imgbyte:ByteArray = URLLoader(evt.target).data as ByteArray; var backimgbyte = A.creatImg(imgbyte,jpghead0); //2 把头部(jpghead0 这个是固定头部字节数组)和身体拼起来,这是我自己写的拼字节的函数 trace(backimgbyte ); //到这里也是对的 backimgbyte.position = 0; //3 把字节数组的指针位置归零 var bmd:BitmapData = new BitmapData(20,30,true,0); // 4 宽高是固定的,32位支持alpha通道的位图, bmd.setPixels(bmd.rect, backimgbyte); // 5 var bm:Bitmap = new Bitmap(bmd); //6 backImg.bitmapData = bm.bitmapData; //7 backImg 是我最终需要的东西 } 从 得到二进制数据后 到我 转换 的过程中,哪里出错了? 请大侠不吝赐教,先感谢下一来看我问题的会友们。。。 |
Loader有个loadBytes方法,作用就是讲二进制数据转为bitmap(前提是那二进制数据是图片) 你把你的图片头和其余部分先拼接起来,然后用这个方法转成图片。 |