zoukankan      html  css  js  c++  java
  • (转载)BitmapData与ByteArray的转换

    【转载】BitmapData与ByteArray的转换  

    2010-05-14 09:39:39|  分类: actionscript 3|字号 订阅

     
     

    有用,转过来,做参考

    package com.klstudio.images {   
       
        import flash.display.BitmapData;   
        import flash.geom.Rectangle;   
        import flash.utils.ByteArray;   
           
        import com.klstudio.util.Base64;   
           
        public class BitmapBytes {   
               
            public static function encodeByteArray(data:BitmapData):ByteArray{   
                if(data == null){   
                    throw new Error("data参数不能为空!");   
                }   
                var bytes:ByteArray = data.getPixels(data.rect);   
                bytes.writeShort(data.width);   
                bytes.writeShort(data.height);   
                bytes.writeBoolean(data.transparent);   
                bytes.compress();   
                return bytes;   
            }   
            public static function encodeBase64(data:BitmapData):String{   
                return Base64.encodeByteArray(encodeByteArray(data));   
            }   
               
            public static function decodeByteArray(bytes:ByteArray):BitmapData{   
                if(bytes == null){   
                    throw new Error("bytes参数不能为空!");   
                }   
                bytes.uncompress();   
                if(bytes.length <  6){   
                    throw new Error("bytes参数为无效值!");   
                }              
                bytes.position = bytes.length - 1;   
                var transparent:Boolean = bytes.readBoolean();   
                bytes.position = bytes.length - 3;   
                var height:int = bytes.readShort();   
                bytes.position = bytes.length - 5;   
                var int = bytes.readShort();   
                bytes.position = 0;   
                var datas:ByteArray = new ByteArray();             
                bytes.readBytes(datas,0,bytes.length - 5);   
                var bmp:BitmapData = new BitmapData(width,height,transparent,0);   
                bmp.setPixels(new Rectangle(0,0,width,height),datas);   
                return bmp;   
            }   
               
            public static function decodeBase64(data:String):BitmapData{               
                return decodeByteArray(Base64.decodeToByteArray(data));   
            }          
               
            public function BitmapBytes() {   
                throw new Error("BitmapBytes类只是一个静态类!");   
            }   
               
        }   
           

  • 相关阅读:
    es5核心技术
    es6 迭代器 和 生成器 学习笔记
    nodejs 基础学习笔记
    node 基本原理
    mac php7 连接数据库遇到的问题
    express ,koa1, koa2学习笔记
    mac mysql的安装
    webpack 给css添加前缀
    利用git将本地的代码同步到github上
    vuex 学习总结及demo
  • 原文地址:https://www.cnblogs.com/hisiqi/p/3053886.html
Copyright © 2011-2022 走看看