我正在尝试将生成的图形保存为PNG文件,但我坚持将数据保存为文件。
我的步骤如下:
这是我在Haxe的方法:
function saveImage():Void
{
var ba:ByteArray = image.encode("png");
var bi:haxe.io.BytesInput = new haxe.io.BytesInput(ba);
var data = new format.png.Reader(bi).read();
var out = sys.io.File.write("testRead.png",true);
new format.png.Writer(out).write(data);
}
image
字段是类变量类型的BitmapData。
请告诉我我做错了什么或者如何将BitmapData保存为PNG图像。
答案 0 :(得分:4)
感谢OpenFL社区,我发现了一种将BitmapData保存为PNG图像的方法,这里是代码:
// Creating a shape that we'll later save
var s:Sprite = new Sprite();
s.graphics.beginFill(0xFF0000, 1);
s.graphics.drawRect(0, 0, 110, 210);
s.graphics.endFill();
// Making a BitmapData from the Sprite
var image:BitmapData = new BitmapData( Std.int( s.width ), Std.int( s.height ), false, 0x00FF00);
image.draw(s);
// Saving the BitmapData
var b:ByteArray = image.encode("png", 1);
var fo:FileOutput = sys.io.File.write("test.png", true);
fo.writeString(b.toString());
fo.close();
test.png文件将显示在应用程序的包中,例如,如果您为mac编译:{{1}}您需要右键单击您创建的.app,选择显示包装内容,转到目录>资源,test.png将在那里。
请注意,定位Flash无法正常工作,因为Flash Player无法访问文件系统。