- 浏览: 284585 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (163)
- ETL (4)
- Oracle (24)
- Win (2)
- Apache (5)
- struts2 (1)
- ArcGIS (21)
- Java (17)
- other (6)
- JavaScript (4)
- Xml (4)
- c# (2)
- webSphere (5)
- Ext (2)
- Flex (35)
- Svn (3)
- tomcat (3)
- MyEclipse (4)
- MySQL (2)
- ibatis (2)
- log4j (4)
- spring (1)
- SqlServer (2)
- android (4)
- ios (3)
- SDE (2)
- mac (1)
- Linux (9)
- Mina2 (1)
最新评论
-
markss:
您好,请问kettle循环处理的内存泄漏问题是否已经解决了?毕 ...
Kettle -
1qqqqqq:
图呢 ???
Myeclipse 9.0集成FLASH BUILDER 4.5 -
hanyi366:
现在MyEclipse 都2014版了,好像MyEclipse ...
Visual Editor 插件 安装 -
cnjmwr:
MyEclipse8.6的Eclipse版本是3.5的 ve1 ...
Visual Editor 插件 安装 -
cloudphoenix:
大神 我特地登陆来回帖,真是帮了我的大忙了。看了一个多月的AS ...
FlexGlobals.topLevelApplication
现在要求把后台bmp格式的图片,在flash中显示。如大家所知的,Flash已经内置了对jgp,png,gif图片的支持。不知道Adobe怎么想的,为啥不支持bmp呢。唉,bmp真是个苦命的孩子啊。
不过还好有解决方案:以二进制的形式,把图片从后台加载到前台,然后通过bmp本身的格式进行解析,解析成为Flash认识的格式(BitMapData),然后就可以使用了哈,废话不多说了,看实例(加载24位bmp):
AS3.0代码
package service { import flash.display.BitmapData; import flash.utils.ByteArray; import flash.utils.Endian; /** * 读取24位的BitMap用类。<BR> */ public class BmpReader { /** * 构造函数。<BR> */ public function BmpReader(){ super(); } /** * 读取24位的BitMap。<BR> */ public static function read(byteArray:ByteArray):BitmapData { try { // 设置字节序 byteArray.endian = Endian.LITTLE_ENDIAN; // 读取2字节,'BM'`对用十六进制为4D42,转化为十进制为19778 if(byteArray.readUnsignedShort() == 19778) { // 跳到表示图片从头到图像数据的偏移量的字节 byteArray.position = 10; var offset:int = byteArray.readInt(); // 跳到表示图片宽和高的字节 byteArray.position = 18; var imageWidth:Number = byteArray.readInt(); var imageHeight:Number = byteArray.readInt(); // 跳到表示图片位数的字节 byteArray.position = 28; var biBitCount:int = byteArray.readUnsignedShort(); // 本类仅处理24位bmp if(biBitCount != 24) { trace("Image Format Error"); return null; } var bitmapData:BitmapData = new BitmapData(imageWidth, imageHeight, false, 0x00FFFFFF); var px:int = 0; var py:int = imageHeight; var rColor:int = 0; var gColor:int = 0; var bColor:int = 0; // 补齐用字节数 var junkbyte:int= 4 - ((imageWidth * 3) % 4); while(py >= 0) { px = 1; while(px <= imageWidth) { if(byteArray.bytesAvailable > 3) { bColor = byteArray.readUnsignedByte(); gColor = byteArray.readUnsignedByte(); rColor = byteArray.readUnsignedByte(); bitmapData.setPixel(px-1, py-1, 256*256*rColor+256*gColor+bColor); } px++; } // 跳过格式补齐用字节 junkByteCheck(byteArray,junkbyte); py--; } } else { trace("Image Format Error"); return null; } } catch (err:Error){ trace(err.getStackTrace()); } return bitmapData; } /** * 跳过格式补齐用字节。<BR> */ private static function junkByteCheck(byteArray:ByteArray, junkbyte:int):void { var bavailable:int=byteArray.bytesAvailable; if ((junkbyte>0 && junkbyte < 4) && (bavailable >= junkbyte)){ for (var i:int; i<junkbyte; i++){ byteArray.readUnsignedByte(); } }else{ return } } } }
Flex mxml代码
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"> <mx:Script> <![CDATA[ import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.events.*; import service.BmpReader; // 加载用 private var loader:URLLoader; // 请求用 private var request:URLRequest; /** * 初期化。<BR> */ private function init():void { loader = new URLLoader(); request = new URLRequest("**.bmp"); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onCompleteHandler); loader.addEventListener(IOErrorEvent.IO_ERROR,onIOError); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onSecurityError); } /** * 加载图片。<BR> */ private function load():void { try{ loader.load(request); } catch(error:Error) { trace("Request" + error); } } /** * 加载完成后处理。<BR> */ private function onCompleteHandler(e:Event):void { trace("load Complete"); var byteArray:ByteArray = ByteArray(e.currentTarget.data); var bitMap:Bitmap = new Bitmap(BmpReader.read(byteArray)); bitMap.width = 400; bitMap.height = 300; image.source = bitMap; } /** * 安全错误处理。<BR> */ private function onSecurityError(securityError: SecurityErrorEvent):void { trace("securityError"); } /** * IO错误处理。<BR> */ private function onIOError(ioError: IOErrorEvent):void { trace("ioError"); } ]]> </mx:Script> <!-- GUI --> <mx:Image id="image" x="10" y="10" width="400" height="300"/> <mx:Button x="10" y="332" label="Show BMP" click="load()"/> </mx:Application>对bmp格式感兴趣的朋友,可参考:http://www.umekkii.jp/data/computer/file_format/bitmap.cgi
发表评论
-
Flex 记住密码
2012-09-01 15:08 12311 在密码正确的情况下,如果“记住密码”是选中的,那么将用户名 ... -
FlexClient、MessageClient、FlexSession
2012-08-16 09:17 875服务端FlexClient、MessageClient、Fle ... -
Flex加密算法设计方案
2012-07-31 10:09 1120对于 Web 应用程序,安全登录是很重要的。 ... -
Flex组件的行为和动画效果
2012-07-05 16:44 851触发器名称 ... -
flex项目中用到了关于时间的计算
2012-07-05 11:11 18901.计算两时间的差值 var date1:Date ; var ... -
使用搜索的关键字过滤DataGrid的行
2012-06-09 14:39 777这里主要展示如何使用搜索的关键字过滤DataGrid的行。其实 ... -
flex的取整(取数)数学运算实例
2012-06-05 20:23 2523<?xml version="1.0&q ... -
自动获得flex中输入框焦点
2012-05-18 08:51 708//在html页面中增加 //swfname--为sw ... -
Flex 滚动条样式设置
2012-04-27 18:00 2554滚动条滚动慢问题:verticalLineScrollSize ... -
Flex组件优化 callLater
2012-04-11 11:29 889Flash & Flex组件优化的杀手锏call ... -
async-threading
2012-04-10 16:09 931开源项目async-threading能使as3支持多线 ... -
Flex异步令牌AsyncToken的用法介绍
2012-04-10 14:03 776什么是AsyncToken?官方文档是这样描述的:&q ... -
Arcgis Symbol
2012-04-07 17:02 7306ArcGIS Engine9.3为开发人员提供了32种符号,主 ... -
ArcGis api for flex 中 Map控件的属性
2012-03-24 17:43 4025<?xml version="1.0&q ... -
关于Flex屏蔽默认右键菜单
2012-03-21 11:34 8951.如果你是Desktop Application 监听事件 ... -
Flex异步令牌AsyncToken的用法介绍
2012-03-14 18:20 714什么是AsyncToken?官方文档是这样描述的:&quo ... -
Flex session和HTTP session过期时间(timeout)的设置方法
2012-03-13 17:52 1471<!-- --> 以下设置的time ... -
FLEX使用remoteobject交互结合spring AOP思想控制项目权限
2012-03-13 17:50 1372本文介绍如何用FLEX+SPRING 使用remoteo ... -
Flex Alert组件使用方法
2012-03-13 13:39 1056Flex Alert组件使用方法,通过Alert.show(. ... -
FlexGlobals.topLevelApplication
2012-03-12 16:00 5865在Flex 3读取HTML页面的flashvars的变量需要使 ...
相关推荐
如何在flex中读取shapefile文件
FLEX 读取Excel数据,展示,可传入后台入库
本文档主要是关于flex读取并写入excel。
通过flex actionscript读取pdf 文件,并且有放大缩小分页等功能
Flex读取XML不刷新问题
NULL 博文链接:https://javaheart88.iteye.com/blog/769165
Flex读取xml文件 几种方法Flex读取xml文件 几种方法Flex读取xml文件 几种方法
flex读取xml乱码的解决方法
flex读取excel文件,环境:flex4.6,flashplayer11。 内有自己写一个简单测试。 第一次上传资料,3个银子,多不多啊,呵呵
NULL 博文链接:https://huxiao.iteye.com/blog/902543
Flex相册 Flex图片
Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex 代码格式化Flex ...
flexBulider页面加载动态图片的显示
flex开发的读取本地txt文件的代码,可选择txt文件,读取内容,无需js帮忙
用flex读取xml然后循环生成buttoon
flex 图片浏览\放大\缩小,
可以基于这个源代码进行自定义修改,解决相关的字符和sheet问题,希望对大家有帮助
Flex教程ppt 格式的 Flex教程ppt 格式的 Flex教程ppt 格式的 Flex教程ppt 格式的 Flex教程ppt 格式的
flex 动态载入外部图片 学习使用基础资料
flex 图片查看器 flex图片 zoomin zoomout 图片查看器