LoginSignup
6
6

More than 5 years have passed since last update.

[AIR] ローカルに画像保存

Last updated at Posted at 2012-08-17
/**
 * copyright (c) 2012 www.itoz.jp
 * @author itoz
 * @since 2012/06/20 19:55:22
 */
package jp.itoz.air.util
{
    import flash.events.ErrorEvent;
    import flash.filesystem.File;
    import flash.filesystem.FileMode;
    import flash.filesystem.FileStream;
    import flash.utils.ByteArray;
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;

    /**
     * [AIR] ローカルに画像保存
     */
    public class LocalImageSaver extends EventDispatcher
    {
        public function LocalImageSaver(target : IEventDispatcher = null)
        {
            super(target);
        }

        /**
         * 保存
         * @param writeFile
         * @param imageBytes
         */
        public function save(writeFile : File, imageBytes : ByteArray) : void
        {
            var stream : FileStream = new FileStream();
            try {

                stream.open(writeFile, FileMode.WRITE);
                stream.writeBytes(imageBytes, 0, imageBytes.length);

            }
            catch (e : Error) {
                dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, writeFile + " 保存できませんでした"));
            }
            finally {
            stream.close();
            }
        }
    }
}
//sample
_saveDir = File.userDirectory;
var pngBytes : ByteArray    = PNGEncoder.encode(myBitmapData);
_saver = new LocalImageSaver();
_saver.addEventListener(ErrorEvent.ERROR, onSaveError);
_saver.save(_saveDir.resolvePath("hoge"+"/"+_name), pngBytes);
6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6