Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何从SWF文件生成PNG图像?_Flash_Command Line_Png_Actionscript 2 - Fatal编程技术网

Flash 如何从SWF文件生成PNG图像?

Flash 如何从SWF文件生成PNG图像?,flash,command-line,png,actionscript-2,Flash,Command Line,Png,Actionscript 2,我有大约2000个SWF文件用于我的网站的头像生成。时代变了,我想离开Flash。我唯一的问题是,我必须从这些SWF文件生成2000个PNG图像才能这样做。所以,很自然地,我研究了自动化工具来帮助实现这一点 我在研究swftools时发现了swfrender,它是一个很棒的工具,但它对我的SWF文件不起作用。SWF文件中的对象定位为0,0,它离开屏幕,如下所示: 因此,当swfrender渲染图像时,结果如下: 我正在寻找一个工具,可以提取阶段的内容,无论位置,并输出到一个PNG图像 其他一

我有大约2000个SWF文件用于我的网站的头像生成。时代变了,我想离开Flash。我唯一的问题是,我必须从这些SWF文件生成2000个PNG图像才能这样做。所以,很自然地,我研究了自动化工具来帮助实现这一点

我在研究swftools时发现了swfrender,它是一个很棒的工具,但它对我的SWF文件不起作用。SWF文件中的对象定位为0,0,它离开屏幕,如下所示:

因此,当swfrender渲染图像时,结果如下:

我正在寻找一个工具,可以提取阶段的内容,无论位置,并输出到一个PNG图像

其他一些细节:

  • SWF文件都是AS1和AS2
  • 某些SWF文件具有多个帧
  • 各SWF之间的SWF含量大小不同,因此一些可能为100px,而另一些可能为10px

如果可能的话,我希望它是命令行的,这样它可以自动完成,并且比我检查每一个并手动导出它要快一些。

export>export Image。将其从FLASH文件导出为png。除非使用Windows切割工具,否则无法从SWF获取照片。

导出>导出图像。将其从FLASH文件导出为png。除非使用Windows切割工具,否则无法从SWF获得照片。

swfrender所做的是渲染SWF。您可以尝试使用swfextract来提取对象,swftools中也包括swfextract

从:

要提取所有内容,请使用

swfextract--outputformat“extract_u06d.%s”-a 1-test.swf

以及手册页中的一些帮助:

否则,如果希望只提取某些对象,则可以执行以下操作:

提取单个项目。首先,运行
swfextract file.swf
并获取flash应用程序包含的任何内容。输出如下所示:

这些是您可以提取的对象。例如,如果要将第三个jpg(ID=6)提取到file.jpeg文件中,则命令为:

swfextract-j6 file.swf-o file.jpeg

因此,如果您想从每个SWF文件中提取所有内容,而不是混淆所有内容,那么我想到的最佳解决方案是将从每个SWF中提取的所有文件都放在各自的文件夹中。您可以通过使用
for
循环来实现这一点:为每个SWF文件创建一个文件夹,并提取该文件夹中SWF的每个元素。这将有助于以后处理它们

但是,例如,形状被提取为SWF,您可以渲染它们,或者在渲染之前调整它们的大小

另一点是,在渲染对象之前,可能需要调整对象的大小或移动对象。通过swftools中的另一个工具:swfcombine,您可以负担得起。此工具通常用于组合SWF对象,但您可以使用它移动或调整其上的元素:

−d, −−dummy    Don't require slave objects (for changing movie attributes)
然后,您应该能够正确地渲染它

如果我把你弄糊涂了,我很抱歉,但是有太多的选择。。。这似乎取决于具体情况(我不知道这是如何处理不同类型的SWF的,比如AS1、AS2等等)。无论如何,我希望这至少对你有帮助

swfrender所做的是渲染SWF。您可以尝试使用swfextract来提取对象,swftools中也包括swfextract

从:

要提取所有内容,请使用

swfextract--outputformat“extract_u06d.%s”-a 1-test.swf

以及手册页中的一些帮助:

否则,如果希望只提取某些对象,则可以执行以下操作:

提取单个项目。首先,运行
swfextract file.swf
并获取flash应用程序包含的任何内容。输出如下所示:

这些是您可以提取的对象。例如,如果要将第三个jpg(ID=6)提取到file.jpeg文件中,则命令为:

swfextract-j6 file.swf-o file.jpeg

因此,如果您想从每个SWF文件中提取所有内容,而不是混淆所有内容,那么我想到的最佳解决方案是将从每个SWF中提取的所有文件都放在各自的文件夹中。您可以通过使用
for
循环来实现这一点:为每个SWF文件创建一个文件夹,并提取该文件夹中SWF的每个元素。这将有助于以后处理它们

但是,例如,形状被提取为SWF,您可以渲染它们,或者在渲染之前调整它们的大小

另一点是,在渲染对象之前,可能需要调整对象的大小或移动对象。通过swftools中的另一个工具:swfcombine,您可以负担得起。此工具通常用于组合SWF对象,但您可以使用它移动或调整其上的元素:

−d, −−dummy    Don't require slave objects (for changing movie attributes)
然后,您应该能够正确地渲染它


如果我把你弄糊涂了,我很抱歉,但是有太多的选择。。。这似乎取决于具体情况(我不知道这是如何处理不同类型的SWF的,比如AS1、AS2等等)。无论如何,我希望这至少对你有帮助

不启动僵尸线程,但在按照Lutarisco的建议尝试swf工具但无法安装之后,我发现

希望这能帮助其他试图从主权财富基金中提取图像的人:)
您可以将背景颜色设置为“清除”,并选择“导出为形状或帧”,您还可以操纵导出大小以获得更大的图像

不显示僵尸线程,而是在尝试Lutarisco建议的swf工具后,无法安装我发现的

希望这能帮助其他试图从主权财富基金中提取图像的人:) 您可以将背景颜色设置为“清除”,并选择“导出为形状或帧”,还可以操作导出
−d, −−dummy    Don't require slave objects (for changing movie attributes)