Flex 显示数据库二进制流图片

在很多应用中,显示数据库中的二进制图片是很必要的,在Flex中同样能实现这个功能。
首先自定义ByteArrayImage类 --用来加载二进制数据的图片类
 
ByteArrayImage
 
在.net中,二进制数据读出来之后就是byte[]类型,而Flex的二进制类型是ByteArray,所以需要先通过AMF3协议将byte[] 转换成ByteArray
(AMF是Adobe独家开发出来的通信协议,它采用二进制压缩,序列化、反序列化、传输数据,从而为Flash 播放器与Flash Remoting网关通信提供了一种轻量级的、高效能的通信方式)

这里我使用了FluorineFx框架,所以直接转换就可以了。 


 


 

最后在Flex客户端需要显示图片的地方加载ByteArray即可

我这里是在双击DataGrid的时候显示该行数据包含的图片

 

private function onDGClick(event:Event):void
{
        var index:Object=dg.selectedItem
        var byteData:ByteArray=index["img"] as ByteArray;

            byteImage.loadBytes(byteData);               
}

最后需要注意的是Flex 、Flash不支持bmp图片,不过可以以二进制的形式,把图片从后台加载到前台,然后通过bmp本身的格式进行解析,解析成为Flash认识的格式(BitMapData) 网上有这方面的资料,这里就不再说了。

效果图   

  image

posted @ 2010-11-02 10:38  千禧牛  阅读(1680)  评论(1)    收藏  举报