【问题标题】:How do I produce a screenshot of a flash swf on the server?如何在服务器上生成 Flash swf 的屏幕截图?
【发布时间】:2009-04-14 02:16:30
【问题描述】:

我正在使用开源工具编写一个 Flash 应用程序。我想将数据文件加载到应用程序中并在服务器上捕获舞台的屏幕截图。唯一看起来神秘的部分是在服务器上运行应用程序。事实上,我什至不在乎它是否是在服务器和浏览器中运行的同一个应用程序——如果我可以使用 flash 阶段和绘图例程在服务器端生成图像,我很高兴。如果我必须深入研究弯曲,那很好。现在我根本找不到任何起点。

我知道 Adob​​e 有一些可能符合要求的商业产品,但我想坚持使用开源、apache 和 linux。我知道使用 haxe/neko 可能会做到这一点,但如果可能的话,我想使用更多主流工具。我是不是要求太多了?

编辑/澄清:非常感谢到目前为止的回复,但我认为我的描述有点混乱。我已经使用与建议的相同的 PNGEncoder 类编写了实际的舞台抓取内容。问题实际上是在服务器端运行 swf。我不想让客户端自己截屏,因为这打开了客户端恶意提交与舞台上的内容不对应的截图的可能性,即我不希望用户上传色情.如果我可以在服务器上运行 actionscript 代码,那么我可以从我的数据文件生成屏幕截图并确保屏幕截图与数据匹配,但我不知道如何在服务器上运行 actionscript 或 swf。

【问题讨论】:

  • 您设想的频率是多少?每秒 100 个? 1个每小时?这可能会对答案产生巨大影响。
  • 简短回答,我不知道。如果唯一的解决方案涉及为每个屏幕截图调用 Flash 播放器,那么,好的,这将是一件好事。我主要是想找出是否有任何方法可以继续。当然,越快越好,但此时我一无所知!

标签: actionscript-3 flash screenshot


【解决方案1】:

Swfs 在客户端计算机上运行,​​而不是在服务器上。它在服务器上运行的唯一方法是在服务器上设置一个特殊的环境,以便它运行 Web 浏览器、打开页面并运行 swf。但即便如此,它也与外部用户的行为无关。

您需要在客户端运行它。就您的安全问题而言,摆脱这些问题的最佳方法是让编写实际图像的 php 只接受闪存可以加密的图像文件的加密形式。这样他们就不能简单地使用 PHP 文件来上传他们想要的任何图像,除非他们碰巧加密它的方式与您的 swf 完全相同。接下来加密 swf 本身(我推荐 SWF Shield),这样潜在的黑客就无法读取代码来知道如何加密图像。

【讨论】:

    【解决方案2】:

    我们刚刚完成了一个类似的项目,我们从加载动态数据的 SWF 渲染 JPG,我们使用了IECapt

    【讨论】:

      【解决方案3】:

      您尝试过 actionscript 打印命令吗?

      【讨论】:

        【解决方案4】:

        【讨论】:

        • 已经试过这门课了。不是用来截屏的。
        【解决方案5】:

        我知道这个问题早就死了,但我有一个类似的问题,最后写了一个脚本,使用 applescript + ui 脚本来抓取 OS X 中独立 Flash 播放器的预览窗口的内部区域。你可以抓取它关闭githubhere

        【讨论】:

          【解决方案6】:

          swfdec-thumbnailer 来自swfdec-gnome 包呢?它用于创建 SWF 文件的缩略图,但可以通过 -s 参数接受任意大的分辨率。

          编辑:swfdec-gnome 在 Ubuntu 10.10 中已被弃用,转而支持 Gnash。 Here 是使用 Gnash 截屏的指南(请注意,渐变等某些功能尚未得到适当支持)。

          【讨论】:

            猜你喜欢
            • 2010-10-17
            • 2013-08-20
            • 2021-04-16
            • 1970-01-01
            • 1970-01-01
            • 2017-02-09
            • 1970-01-01
            • 1970-01-01
            • 2020-04-06
            相关资源
            最近更新 更多