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类只是一个静态类!");   
            }   
               
        }   
           

  • 相关阅读:
    Mandala Coloring Book Game ver 1.2
    Racing Game Starter Kit 1.1.0a
    Unity3D射击项目源码
    U3D第一人称解谜游戏完整项目工程源码
    uMMORPG Remastered v2.25
    U3D网球完整项目源码 v1.1
    Unity3D果汁店模拟经营完整项目工程源码
    3D坦克大战游戏项目源码
    周民强实变函数论第3版勘误14个
    竞赛2021年浙江省高等数学(微积分)竞赛数学类与工科类试题2页pdf
  • 原文地址:https://www.cnblogs.com/hisiqi/p/3053886.html
Copyright © 2011-2022 走看看