在滚动的 Flash 窗口中截取图像(包括示例网站)

在滚动的 Flash 窗口中截取图像(包括示例网站)

我想捕获当您单击此网站上的缩放按钮时弹出框中出现的全尺寸缩放图像:

http://www.restorationhardware.com/catalog/product/product.jsp?productId=prod1618051&navCount=0

我尝试过各种具有截取滚动窗口功能的屏幕捕获软件,但都没有成功。

谢谢。

答案1

一些技术见解(但不是简单的解决方案):

当禁用 Flash 时:

  • 使用安装了 Firebug 的 Firefox、基于 WebKit 的浏览器(例如 Safari 或 Chrome)或 IE8 打开页面。
  • 右键单击页面中的某处并选择“检查元素”之类的操作。
  • 启用“资源”或“网络”选项卡。
  • 单击缩放图标。

在更新的“资源”选项卡中,你现在将看到浏览器实际上请求了如下文件media.restorationhardware.com/is/image/rhis/prod1618051?$ev$

但是,这些仍然不是 Flash 组件中使用的全尺寸图像。使用Wireshark,可以看到在滚动或缩放时请求图块。

http://media.restorationhardware.com/is/image/rhis/prod1618051你会看到如下图块http://media.restorationhardware.com/is/image/rhis/prod1618051?req=tile&id=3UP-z-23gMQL0_Rw7yMXDF&scl=1&rect=256,512,256,256&fmt=swf被请求,以及元数据,例如http://media.restorationhardware.com/is/image/rhis/prod1618051?req=ctx

您还可以使用,并更改和 的fmt=png值。后者是左上角坐标的两个值,以及宽度和高度的另外两个值(使用 时返回最大尺寸)。就像为您提供左上角的图块。值越小,分辨率越高。似乎这不是必需的。尽管如此,这仍然需要大量的反复试验:sclrect?req=ctxrect=0,0,1024,1024sclid

(因此,对于您的示例:右键单击低分辨率图像,选择在新窗口中打开,然后将后缀替换?$av_sm$?$ev$,或者对于较大的图块,则将后缀替换为整个?req=tile...后缀。)

答案2

如果您运行的是 OS X,这真的很容易。

  • ++shift4
  • 十字线将会出现
  • 选择所需的捕获区域:
    • 将十字线移动到该区域的一角
    • 按住鼠标左键并拖动到区域的另一个角
    • 松开按钮
  • 捕获的图像将以 PNG 图像的形式显示在桌面上

答案3

如果没有 .fla 文件来捕获图像,那么很难做到这一点。在这种情况下,Flash 文件很难处理。如果您无法获得 .fla 文件,您可以尝试检索 .swf 文件并对其进行反编译。也就是说,如果您无法获得实际的原始文件本身。

相关内容