Sample code
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.ByteArray;
import com.adobe.images.PNGEncoder;
public class ImageSaver extends Sprite {
private var fileReference:FileReference;
public function ImageSaver() {
save_btn.addEventListener(MouseEvent.CLICK, h_saveClick);
}
public function h_saveClick(evt:MouseEvent):void {
var b:BitmapData = new BitmapData(100, 100, false, 0xff0000);
save(b);
}
public function save(b:BitmapData):void {
try {
var pngBytes:ByteArray= PNGEncoder.encode(b);
fileReference=new FileReference();
fileReference.save(pngBytes,"sample.png");
} catch (e:Error) {
trace(e);
}
}
}
}
AIR version with File and FileStream object
package {
import flash.display.*;
import flash.events.*;
import flash.filesystem.*;
import flash.utils.ByteArray;
import com.adobe.images.PNGEncoder;
public class ImageSaver extends Sprite {
private var file:File;
private var bmpd:BitmapData;
public function ImageSaver() {
save_btn.addEventListener(MouseEvent.CLICK, h_saveClick);
}
public function h_saveClick(evt:MouseEvent):void {
var b:BitmapData=new BitmapData(100,100,false,0xff0000);
save(b);
}
public function save(b:BitmapData):void {
bmpd=b;
file=new File(File.desktopDirectory.url+"/sample.png");
file.addEventListener(Event.SELECT,h_select);
file.browseForSave("save");
}
private function h_select(evt:Event):void {
try {
var pngBytes:ByteArray=PNGEncoder.encode(bmpd);
var stream:FileStream = new FileStream( );
stream.open(file, FileMode.WRITE);
stream.writeBytes(pngBytes, 0, pngBytes.length);
stream.close( );
} catch (e:Error) {
trace(e);
}
}
}
}
Leave a comment