我在一些网站上看到的是动画 PNG 文件,而不是 GIF。我该如何保存/下载它们?

我在一些网站上看到的是动画 PNG 文件,而不是 GIF。我该如何保存/下载它们?

我知道如何保存 GIF,非常简单。只需右键单击并保存即可。瞧!但是对于这些新的动画 PNG,我一点也不糊涂。如果不使用某种屏幕抓取工具来抓取整个桌面,我甚至不确定这是否可行。只需右键单击并保存,结果会得到一个看起来只有一帧的 PNG。也许我没有使用正确的软件来查看动画 PNG???我还尝试了所有我能想到的“抓取”程序(Internet Download Manager、Video DownloadHelper、VSO Downloader 等),但它们都没有检测到它。

答案1

这是一家日本艺术网站,有点像 deviantart,我的一个朋友在上面发表作品,网站叫 pixiv。下面是一个例子:https://www.pixiv.net/member_illust.php?mode=medium&illust_id=65229638Braden 的 PC

Pixiv 上的这些动画确实是由单个图像组成,并使用 JavaScript 制作动画。(GIF 不善于再现色彩,APNG 在浏览器内部和外部都得不到很好的支持,Flash 正在消亡,因此唯一好的替代方案是使用 <video> 标签。)

但有很多第三者直接从网站自动生成 GIF 或 WebM 文件的工具,只需搜索“pixiv ugoira 转换器“当前可用的。(当前最佳结果是http://ugoira.dataprocessingclub.org/

您还可以直接获取所有帧的 .zip 存档以及时间列表:

  • 使用浏览器的F12开发者控制台,访问pixiv.context.ugokuIllustDatapixiv.context.ugokuIllustFullscreenData

    (作为快捷方式,location = pixiv.context.ugokuIllustData.src直接打开文件。)

  • 使用 Python 或 Node 模块(半官方)Pixiv API:

    $ python3
    >>> import pixivpy3, pprint
    >>> api = pixivpy3.PixivAPI()
    >>> api.login(...)
    >>> data = api.works(65229638)
    >>> pprint.pprint(data["response"][0]["metadata"])
    {'frames': [{'delay_msec': 275}, {'delay_msec': 275},
                {'delay_msec': 275}, {'delay_msec': 275},
                ...
                {'delay_msec': 275}, {'delay_msec': 275}],
     'zip_urls': {'ugoira600x600': 'https://i.pximg.net/img-zip-ugoira/img/2017/10/01/23/13/36/65229638_ugoira600x600.zip'}}
    

答案2

如果您可以右键单击图像并保存它,我希望它会保存为从网站获取的图像。由于您最终保存了单个帧,因此您可能保存了单个帧。该网站可能正在使用 JavaScript 使多个图形一次显示一个,从而显示动画。在这种情况下,右键单击图像显示的位置可能会导致只保存一个图像(以您保存时的最新图像为准)。

在 Mozilla Firefox 中,右键单击页面背景。选择“查看页面信息”。然后转到“媒体”选项卡。如果不同框架有多个图形文件,“媒体”选项卡可能会显示每个图形。如果是这样,这将很容易证实 JavaScript 使用多个文件的怀疑。

答案3

您提到的 Canvas 非常具有启发性。

我曾经与一个叫 Canvas 的公司合作过。基本上,它允许网站管理员定义一定量的空间。然后计算机程序员可以使用 JavaScript 命令使某些视觉效果(如绘制一条线)出现在屏幕上。

(我不记得更多细节,因为那是一段时间以前的事了,而且我认为这个可能的解决方案看起来无法实现预期的目标。)

因此,如果确实使用了这项技术,那么 Web 浏览器就不会有包含所有这些不同图像的传统 *.PNG 文件。相反,您看到的单个图像是一些 JavaScript 命令的结果。(Web 浏览器可能没有内置 Canvas 组件到 PNG 文件格式的转换功能。)

答案4

我刚刚从一条包含两个 APNG 的推文中保存了 gif。我右键单击 APNG 并选择“复制图片地址”,然后将其粘贴到新选项卡中。选项卡中的图片确实像 gif 一样移动。一旦我知道地址有效,我将其粘贴到 VSO 下载器中并下载,然后将其转换为视频格式,它保存的不是 gif,而是视频。

我希望这有帮助。

相关内容