![我在一些网站上看到的是动画 PNG 文件,而不是 GIF。我该如何保存/下载它们?](https://linux22.com/image/1546361/%E6%88%91%E5%9C%A8%E4%B8%80%E4%BA%9B%E7%BD%91%E7%AB%99%E4%B8%8A%E7%9C%8B%E5%88%B0%E7%9A%84%E6%98%AF%E5%8A%A8%E7%94%BB%20PNG%20%E6%96%87%E4%BB%B6%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%20GIF%E3%80%82%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E4%BF%9D%E5%AD%98%2F%E4%B8%8B%E8%BD%BD%E5%AE%83%E4%BB%AC%EF%BC%9F.png)
我知道如何保存 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=65229638–Braden 的 PC
Pixiv 上的这些动画确实是由单个图像组成,并使用 JavaScript 制作动画。(GIF 不善于再现色彩,APNG 在浏览器内部和外部都得不到很好的支持,Flash 正在消亡,因此唯一好的替代方案是使用 <video> 标签。)
但有很多第三者直接从网站自动生成 GIF 或 WebM 文件的工具,只需搜索“pixiv ugoira 转换器“当前可用的。(当前最佳结果是http://ugoira.dataprocessingclub.org/。
您还可以直接获取所有帧的 .zip 存档以及时间列表:
使用浏览器的F12开发者控制台,访问
pixiv.context.ugokuIllustData
或pixiv.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,而是视频。
我希望这有帮助。