【问题标题】:how to extract flash frames programmatically如何以编程方式提取闪存帧
【发布时间】:2009-02-10 05:11:22
【问题描述】:

我需要从 flash swf 中提取帧(可以是每个数字)并将其转换为 jpg/png/.. 以编程方式 最好的方法是什么?别介意编程语言

【问题讨论】:

    标签: flash


    【解决方案1】:

    您有原始 .fla 文件还是只有 .swf 文件?

    无论如何,如果您使用 Actionscript 3,那么 DisplayObject 及其子类(Stage、Sprite、MovieClip...)的每个实例都可以捕获到位图。为此,请创建一个 BitmapData 对象并使用其 draw 方法。

    看起来像这样:

    do {
        bitmapData.draw(someMC);
        //then send the data to some server-side page
        //using getPixel or some other solution
        someMC.nextFrame();
    } while (someMC.currentFrame =< someMC.totalFrames)
    

    有关如何将图像传输到服务器端页面的更多信息,请查看:http://www.sephiroth.it/tutorials/flashPHP/print_screen/index.php

    如果你只有 swf 文件,可以尝试在自己的 swf 中加载,然后运行上面的代码。

    【讨论】:

    • 谢谢,它支持远程swf文件加载吗?那是来自远程网址?
    • 是的,但是,flash 在从不同域加载 swf 时有一些安全限制。您必须检查每个方法的 API,看看它们是否抛出 SecurityError。
    • 刚刚检查过,draw 方法确实会引发 SecurityError,因此您必须将远程 swfs 传输到与您正在运行加载程序的域相同的域。
    【解决方案2】:

    查看swfextract,swftools 的一部分。它是一个控制台应用程序,因此您可以通过自己的软件轻松驱动它。

    【讨论】:

    • 很棒的工具,但我需要在远程 swf 文件上执行此操作的选项,我没有找到任何方法来执行此操作
    • 如果是远程的,那么你需要从这个远程位置检索swf,然后处理它!
    • 请注意,swfextract 实际上并不将帧渲染为图像。是的,它可以从 Flash 中提取现有图像,但如果您只是提取矢量动画,它只会提取为新的 Flash 文件。
    猜你喜欢
    • 1970-01-01
    • 2011-07-12
    • 2010-09-30
    • 1970-01-01
    • 2017-06-09
    • 2011-03-26
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多