- 浏览: 292176 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (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 12891 在密码正确的情况下,如果“记住密码”是选中的,那么将用户名 ... -
FlexClient、MessageClient、FlexSession
2012-08-16 09:17 916服务端FlexClient、MessageClient、Fle ... -
Flex加密算法设计方案
2012-07-31 10:09 1173对于 Web 应用程序,安全登录是很重要的。 ... -
Flex组件的行为和动画效果
2012-07-05 16:44 891触发器名称 ... -
flex项目中用到了关于时间的计算
2012-07-05 11:11 19231.计算两时间的差值 var date1:Date ; var ... -
使用搜索的关键字过滤DataGrid的行
2012-06-09 14:39 810这里主要展示如何使用搜索的关键字过滤DataGrid的行。其实 ... -
flex的取整(取数)数学运算实例
2012-06-05 20:23 2576<?xml version="1.0&q ... -
自动获得flex中输入框焦点
2012-05-18 08:51 744//在html页面中增加 //swfname--为sw ... -
Flex 滚动条样式设置
2012-04-27 18:00 2596滚动条滚动慢问题:verticalLineScrollSize ... -
Flex组件优化 callLater
2012-04-11 11:29 930Flash & Flex组件优化的杀手锏call ... -
async-threading
2012-04-10 16:09 961开源项目async-threading能使as3支持多线 ... -
Flex异步令牌AsyncToken的用法介绍
2012-04-10 14:03 811什么是AsyncToken?官方文档是这样描述的:&q ... -
Arcgis Symbol
2012-04-07 17:02 7374ArcGIS Engine9.3为开发人员提供了32种符号,主 ... -
ArcGis api for flex 中 Map控件的属性
2012-03-24 17:43 4073<?xml version="1.0&q ... -
关于Flex屏蔽默认右键菜单
2012-03-21 11:34 9421.如果你是Desktop Application 监听事件 ... -
Flex异步令牌AsyncToken的用法介绍
2012-03-14 18:20 749什么是AsyncToken?官方文档是这样描述的:&quo ... -
Flex session和HTTP session过期时间(timeout)的设置方法
2012-03-13 17:52 1522<!-- --> 以下设置的time ... -
FLEX使用remoteobject交互结合spring AOP思想控制项目权限
2012-03-13 17:50 1420本文介绍如何用FLEX+SPRING 使用remoteo ... -
Flex Alert组件使用方法
2012-03-13 13:39 1094Flex Alert组件使用方法,通过Alert.show(. ... -
FlexGlobals.topLevelApplication
2012-03-12 16:00 5912在Flex 3读取HTML页面的flashvars的变量需要使 ...
相关推荐
首先读取bmp图像,然后创建一个新的ImageWriter实例,指定目标格式,最后将转换后的图像写入新文件。 预览功能在前端实现,Flex提供了BitmapData类,可以用于加载、显示和处理位图数据。我们可以使用`BitmapData....
Java编程语言在处理各种文件类型,如Flash(SWF)、JPEG(JPG)、GIF和BMP等图像格式时,提供了强大的支持。本压缩包文件包含的源码着重于如何在Java环境中准确地读取这些文件,从而实现对它们内容的解析、显示或...
- Flash AIR还支持PNG、BMP等多种格式,可以根据具体需求选择合适的格式进行处理。 - **跨平台兼容性**: - 使用Flash AIR开发的应用程序可以在多个平台上运行,包括Windows、Mac OS、iOS和Android等。 - 开发者...
- 图片链接处理:检查文件扩展名,如果为常见图像格式(如 jpg、bmp、png 或 gif),则插入图片标签。 #### 6. **分页处理** - **分页计算**:根据总条数 `totalPut` 和每页显示数量 `MaxPerPage` 计算出当前...
Flex传感器通常用于检测手指的弯曲程度,其电阻值会随着弯曲程度改变,因此可以通过读取ADC(模数转换器)的值来获取角度信息。MPR121传感器则可以检测手套上的触碰事件,提供额外的交互可能性。 “how-to-make-a-...