Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原

Autodesk激活无无网络选项?许可类型与脱机激活排查修复指南 软件许可激活是保障正版授权正常使用的核心环节,常见的授权模式包括单机版许可和网络版许可,两者在认证机制和应用场景上有所区别。单机版离线授权依托 FlexNet Licensing Service 等底层服务组件,在断网或内网环境下为用户提供可靠的技术支持与授权验证路径。然而在实际部署中,激活窗口并不总是显示“无网络激活方式”入口,这可能与许可类型选择、网络环境干扰、组件安装残留或系统时间偏差有关。理解入口的动态呈现逻辑与排查顺序,有助于在 AutoCAD、Revit 等 Autodesk 产品中高效解决脱机 阅读详情
本文为转载,原文地址: http://hjy2099.javaeye.com/blog/260329
 
近日在项目当中需要将图片保存到共享对象当中,开始用了俩天的时间做了对象的序列化,并以BitmapData的形式进行了图片的序列化保存共享,因为系统没有提供更好的接口所以无法测试,前天写好了测试代码,结果对象的其他类型的属性都可以访问了,但图片就是复原不了,到各大论天,技术网站考究了一天也没有答案,
只有“KingLong's”的“[AS3]BitmapBytes类-实现BitmapData与ByteArray(Base64)之间互转功能”一篇文章,看了半天,研究了半天,结果他把一个核心的类没有公开,我发了几次请求人家都没有给回,失败啊!无奈自己多花一点时间吧,这个是必须解决的。研究俩天终于在下午四点成功了,心情甚爽,晚上还改善了生活!
  此问题在网上问的人太多了,但是高手就是觉得自己牛逼,不告诉你,菜鸟需要几天的时间甚至还会以失败告终,所以我今天贴出来供大家参考。转载请注明出处!!!谢谢合作
此类可以将一个可是组件读取为图像,并且以二进制形式进行序列化共享,还提供了二进制读取为Bitmap的方法,将图片的source属性直接赋值为本方法就可以了。此方法flex项目当中防止图片链接断开的最好解决办法。
注:本人水平太差,不知道怎样得出此方法的图片压缩和存储效率,仅是实现了功能!
下面是完整的类
  1. package com.kyit.lg.util 
  2. { /* 
  3.   author:李广业 
  4.   */ 
  5. import flash.display.Bitmap; 
  6. import flash.display.BitmapData; 
  7. import flash.geom.Rectangle; 
  8. import flash.utils.ByteArray; 
  9. import mx.core.UIComponent; 
  10. public class BitmapBytes 
  11. { 
  12.   public function BitmapBytes() 
  13.   { 
  14.   super(); 
  15.   } 
  16.   //将可视的UIComponent组件转换为ByteArray数组,我就是在UIComponent那里放了一个图片 
  17.   public static function BitmapDataToByteArray(target : UIComponent):ByteArray{ 
  18.   var imageWidth:uint = target.width; 
  19.   var imageHeight:uint = target.height; 
  20.   var srcBmp:BitmapData = new BitmapData( imageWidth, imageHeight ); 
  21.   //将组件读取为BitmapData对象,bitmagData的数据源 
  22.   srcBmp.draw( target ); 
  23.   //getPixels方法用于读取指定像素区域生成一个ByteArray,Rectangle是一个区域框,就是起始坐标 
  24.   var pixels:ByteArray = srcBmp.getPixels( new Rectangle(0,0,imageWidth,imageHeight) ); 
  25.   //下面俩行将数据源的高和宽一起存储到数组中,为翻转的时候提供高度和宽度 
  26.   pixels.writeShort(imageHeight); 
  27.   pixels.writeShort(imageWidth); 
  28.   return pixels; 
  29.   } 
  30.   //次方法的参数必须是像上面的ByteArray形式一样的,即需要对象的大小; 
  31.   //此方法返回的Bitmap可以直接赋值给Image的source属性 
  32.   public static function ByteArrayToBitmap(byArr:ByteArray):Bitmap{ 
  33.   if(byArr==null){ 
  34.     return null; 
  35.   } 
  36.   //读取出存入时图片的高和宽,因为是最后存入的数据,所以需要到尾部读取 
  37.   var bmd:ByteArray= byArr; 
  38.   bmd.position=bmd.length-2; 
  39.   var imageWidth:int = bmd.readShort(); 
  40.   bmd.position=bmd.length-4; 
  41.   var imageHeight:int= bmd.readShort(); 
  42.   var copyBmp:BitmapData = new BitmapData( imageWidth, imageHeight, true ); 
  43.   //利用setPixel方法给图片中的每一个像素赋值,做逆操作 
  44.   //ByteArray数组从零开始存储一直到最后都是图片数据,因为读入时的高和宽都是一样的,所以当循环结束是正好读完 
  45.   bmd.position = 0; 
  46.   for( var i:uint=0; i<imageHeight ; i++ ) 
  47.   { 
  48.     for( var j:uint=0; j<imageWidth; j++ ) 
  49.     { 
  50.       copyBmp.setPixel( j, i, bmd.readUnsignedInt() ); 
  51.     } 
  52.   } 
  53.   var bmp:Bitmap = new Bitmap( copyBmp ); 
  54.   return bmp; 
  55.   } 
  56. } 
  57. } 
以下是mxml文件,只是我做测试用的没有进行序列化,有需要的留言给我,
 
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> 
  3. <mx:Script> 
  4. <![CDATA[ 
  5.   import com.kyit.lg.util .BitmapBytes; 
  6.   private var byteArr:ByteArray; 
  7.     internal function copyToTar():void{ 
  8.           //这俩个方法都是静态的,因为项目当中常用
  9.           byteArr=BitmapBytes.BitmapDataToByteArray(sorImg); 
  10.           tarImg.source=BitmapBytes.ByteArrayToBitmap(byteArr); 
  11.   } 
  12.   
  13. ]]> 
  14. </mx:Script> 
  15.     <mx:Image x="33" y="56"  id="sorImg" source="a.jpg"/> 
  16.     <mx:Image x="33" y="265"  id="tarImg" /> 
  17.     <mx:Button x="33" y="26" label="a1" click="copyToTar();" /> 
  18. </mx:WindowedApplication>

 

这个是AIR版的,其实RIA的也一样,我试过了。这样也解决了一个问题,就是如果后台给前台的直接是byteArray的话,那么直接用ByteArrayToBitmap这个方法就可以了。

 
 
避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测) 本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。 阅读详情

相关推荐

电赛备赛笔记:用STM32驱动AD9959信号发生器模块,从接线到出波保姆级教程

本文详细介绍了如何使用STM32驱动AD9959信号发生器模块,从硬件接线到软件调试的全流程。AD9959作为高性能DDS芯片,适用于电子设计竞赛中的信号生成需求。文章包含硬件连接指南、寄存器配置解析、多通道控制技巧以及常见问题解决方案,帮助参赛者快速掌握AD9959的应用。

weixin_31858171的博客 368

Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原

package com.kyit.lg..util { import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.

全心全意为人民服务的柠檬 8781

手把手式介绍 ADNI 影像数据下载

1.搜索 1.1登录 打开ADNI的官网:http://adni.loni.usc.edu/,进入下面的界面。 点击 DATA&SMPLES 下的 ACCESS DATA AND SAMPLES,如下图。 页面跳转以后点击中间的“LOGIN”,这时会跳出一个新的界面,然后在右上角输入自己的帐号、密码即可。如果没有权限可以跳转到第2部分看看如何申请权限。 登录以后选择DOWNLOAD下的 Image Collections就是搜索下载影像数据,其他还有一些学习测试数据和遗传数据。 1.2 sea

永远想不起来更新的博客 1万+

Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原 .

import flash.display.Bitmap;    import flash.display.BitmapData;    import flash.geom.Rectangle;    import flash.utils.ByteArray;    import mx.core.UIComponent;    public class BitmapBytes    {

俊哥 1050

NWD 格式转换 STL 全流程:专业方案与迪威模型网在线转换详解

在3D模型处理中,将NWD文件转换为STL格式是常见的需求,特别是在3D打印和计算机辅助制造等领域。NWD文件由Autodesk开发,主要用于建筑、工程和施工行业,包含丰富的几何图形和材质信息,但因其专有格式和大文件大小,限制了其应用范围。相比之下,STL格式广泛应用于3D打印,仅包含表面几何信息。转换NWD到STL的原因包括拓展模型应用场景和便于模型编辑。转换方法包括使用专业软件如Autodesk Navisworks配合Blender或3ds Max,或使用专门的转换工具如CADExchanger。

技术说明博主 2541

利用LATX技术在龙芯安同AOCS OS上部署坚果云:跨架构文件同步实战

本文详细介绍了如何在龙芯安同AOCS OS上,利用LATX指令翻译技术部署坚果云客户端,实现跨架构文件同步。通过安装LATX环境、解压x64安装包、运行安装脚本三步,成功在loongarch64架构上运行仅支持x86_64的软件,解决了国产平台办公协同的痛点,并分享了性能实测与优化建议。

weixin_29305337的博客 457

Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原[转]

近日在项目当中需要将图片保存到共享对象当中,开始用了俩天的时间做了对象的序列化,并以BitmapData的形式进行了图片的序列化保存共享,因为系统没有提供更好的接口所以无法测试,前天写好了测试代码,结果对象的其他类型的属性都可以访问了,但图片就是复原不了,到各大论天,技术网站考究了一天也没有答案, 只有“KingLong's”的“[AS3]BitmapBytes类-实现BitmapDa...

weixin_30549175的博客 99

Yolov8轻量级网络:Ghostnet、G_ghost、Ghostnetv2家族大作战(一):华为Ghostnet,超越谷歌MobileNet | CVPR2020

Yolov8引入轻量级网络Ghostnet、G_ghost、Ghostnetv2等,减少最新的深度神经网络的计算成本,引入高效的神经网络结构。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2570

SWF逆向工程实战指南:从工具链搭建到资源与代码提取

逆向工程是分析软件内部工作原理、提取关键资产与逻辑的核心技术。其原理在于解析目标文件的格式与结构,将机器可读的字节码或二进制数据转换为人可理解的代码与资源。这项技术的价值在于能实现数字遗产的抢救、遗留系统的迁移与安全漏洞的分析。在Flash技术已退出历史舞台的今天,大量以SWF格式封存的创意内容、教育课件与互动应用成为亟待处理的数字资产。通过逆向工程,可以提取其中的矢量图形、音频素材与ActionScript脚本逻辑,为迁移至现代Web技术栈(如HTML5 Canvas)奠定基础。本文聚焦于SWF文件,系统

weixin_30580341的博客 359

工商银行软件开发中心数据安全监测溯源防护体系建设成果及展望

结合业界先进溯源理念和我行管理要求,依托大数据、分布式搜索分析引擎等技术,构建PB级海量数据加工分析和小时级快速核验、检索、溯源手段(如图6所示),支撑6种客户敏感信息关键要素的单一或组合溯源,形成行之有效的数据安全溯源流程,配套落地自动化快速泄露样本真实性核验和灵活高效的溯源能力,通过数据相关属性的自动化分析,实现追踪泄露源头、明确泄露路径的目标,为有效应对数据安全事件,降低和消除风险与不良影响,开展事后追责处置工作提供体系化解决方案。提高数据排查的自动化程度和排查效率,降低人工成本。

银行信息系统应用架构详解 226

Python爬虫:抓取交通工具班次数据(公交、地铁等时刻表)

然而,由于这些信息并不总是以开放的API形式提供,因此爬虫技术成为了获取和分析这些数据的有效途径。然而,由于很多公交公司没有公开API,通常我们通过抓取其网页中的时刻表数据来获取信息。通过这些步骤,您可以轻松抓取交通工具的班次信息,并进行进一步的数据分析,辅助交通规划和出行推荐系统的建设。在这篇文章中,我们将演示如何使用Python爬虫技术抓取公交、地铁等交通工具的班次和时刻表数据。我们可以将公交和地铁的数据合并,进行综合分析。我们可以进一步分析地铁班次的发车频率,甚至可以比较不同地铁线路的班次。

2201_76125261的博客 955

模型之外的那套装置:用 AI harness 完成一个三端同步应用

AI harness 指模型之外、让模型能持续产出可交付软件的全部工程装置。本文把它称作"支架"。它由五层构成:输入层规定模型读什么,反馈层规定模型怎么知道自己错了,观测层把界面与设备状态变成可读事实,记忆层让跨会话不失真,边界层规定哪些动作不许模型自行作出。支架的价值在六天里可以直接计量。

Leo的Matrix 181

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

密码存储不是 MD5 加盐:PBKDF2、scrypt、参数升级与安全验证实战

本文通过实战演示密码存储的正确做法:摒弃MD5加盐,采用PBKDF2与scrypt等高成本密钥派生函数,结合随机盐、版本化记录与严格解析,确保离线破解成本可控。模块实现安全验证、参数校验、透明升级与统一错误处理,强调算法选择需兼顾安全性与可维护性,提供教学级密码存储方案,助力构建可迁移、可审计的认证边界。

此人很懒,什么都没有写~~ 239

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

DNS 不是把域名翻译成 IP:递归解析、TTL 缓存、CNAME 与报文排错实战

本文通过离线Python实验,拆解DNS递归解析、缓存机制与报文结构,揭示“DNS不是全局映射表”的本质。重点解析递归器角色、TTL衰减、CNAME链处理、负缓存隔离及修改记录延迟生效等核心问题,结合实战排错案例,阐明缓存层级、事务匹配、截断处理与安全边界,强调从应用到权威的逐层排查逻辑,实现可复现、可验证的DNS教学系统。

此人很懒,什么都没有写~~ 352
上一篇: 再谈:Flex程序如何获取html容器传递的URL参数值
下一篇: Flex相册
busycode
博客等级 码龄19年 0粉丝 1原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值