SWF到图像

时间:2009-04-20 14:09:36

标签: flash

目前我正在使用SWFToImage将我在swf中动态生成的图表转换为图片。但是当需要同时创建多个图像时,它会崩溃很多。

是否有更好的解决方案可用于从SWF文件生成图像?

2 个答案:

答案 0 :(得分:0)

如果您要删除闪存只是使用图像,您可能需要考虑使用非闪存图表生成器。它会更快/更有效/更可靠。

如果闪光灯实际上被某人使用,请忽略这一点。

答案 1 :(得分:0)

根据您是否能够修改SWF的来源,您可以点击按钮,从舞台内容创建BitmapData对象,然后将该数据编码为图像格式。然后,您可以使用AIR将其保存到桌面或服务器端语言,以便将其保存到服务器,这也取决于您的要求。如果这个方向合理,我可以进一步阐述。

回复评论: 是的,你是对的,你也可以轻松地加载外部SWF。

以下是您需要做的大致概述:

加载外部SWF非常简单:

var loader:Loader = new Loader();

var urlRequest:URLRequest = new URLRequest("url-to-external.swf");

loader.load(urlRequest);

然后将外部SWF内容复制到BitmapData对象中(可能在某些事件上,如点击按钮):

var bitmapData:BitmapData = new BitmapData(loader.width, loader.height);
bitmapData.draw(loader);

但是,根据源SWF的外观,可能需要一些额外的工作。您可能尤其需要考虑加载的SWF中内容的(x,y)坐标,因为它们可能会创建与BitmapData对象绘制的内容的偏移量。

然后,您可以使用BitmapData对象创建一个图像文件,比如PNG,使用AS3 core lib中的PNGEncoder类。