【问题标题】:what is the simpliest way to get jpg from bitmapData从 bitmapData 获取 jpg 的最简单方法是什么
【发布时间】:2011-04-19 11:54:18
【问题描述】:

我需要将从影片剪辑中抓取的 bitmapData 转换为 jpeg 或 png。有没有一些库?

【问题讨论】:

    标签: actionscript-3 adobe


    【解决方案1】:

    在将字节转换为图像的部分中查看此示例,我已给出完整供您参考

    package {
        import encoding.JPGEncoder;
        import flash.display.Bitmap;
        import flash.display.BitmapData;
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.utils.ByteArray;
        import flash.events.Event
    
        public class Converter extends Sprite {
    
            [Embed(source = "image.jpg")]
            private var image:Class
    
            private const QUALITY:uint = 80;
    
            public function Converter():void {
    
                var bitmap:Bitmap = new image();
                var bitmapData:BitmapData = bitmap.bitmapData;
    
                //encode BitmapData to JPG 
                var encoder:JPGEncoder = new JPGEncoder(QUALITY);
                var rawBytes:ByteArray = encoder.encode(bitmap.bitmapData);
    
                //decode JPG ByteArray back to BitmapData
                var loader:Loader = new Loader();
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, getBitmapData)
                loader.loadBytes(rawBytes); 
            }
    
            private function getBitmapData(e:Event):void  {
                var decodedBitmapData:BitmapData = Bitmap(e.target.content).bitmapData
                trace(decodedBitmapData);
            }
        }   
    }
    

    【讨论】:

      【解决方案2】:

      您现在可以使用 Flash Player 11.3 和 AIR 3.3 中内置的原生 jpeg 编码。

      var quality:int = 50;
      var bounds:Rectangle = bitmapData.rect;
      var result:ByteArray = bitmapData.encode(bounds, new JPEGEncoderOptions(50));
      

      这需要将-swf-version=16 传递给编译器。

      【讨论】:

      • -swf-version 参数的 +1(无法让编码自己工作,但做到了)
      【解决方案3】:

      这不是最简单的方法,但根据图像的尺寸,可能值得一看。 Jens Krause 使用 Alchemy 编译了 jpeglib,它的编码速度比 as3corelib 的版本快得多,甚至比 Thibault Imbert 改进的 AS3 版本要快:

      http://www.websector.de/blog/2009/06/21/speed-up-jpeg-encoding-using-alchemy/

      【讨论】:

      • 嗯,这很有趣。我从没想过使用炼金术可以提高生产力!
      • 在我们的应用程序中,它几乎是 10 倍的加速。
      猜你喜欢
      • 2020-10-16
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 2021-03-21
      • 2019-04-21
      • 2023-03-13
      相关资源
      最近更新 更多