有些网站有这样的内容:
<img src="blob:foo" alt="bar">
Firefox 中的“将图片另存为”功能不允许我保存图片 blob:foo。我也无法使用“将页面另存为”下载图片。我该如何下载图片?
答案1
您只需要使用要下载的图像的图像源创建自己的元素,因此作为一个基本示例:
var image = document.querySelector('img'); // Image you want to save
var saveImg = document.createElement('a'); // New link we use to save it with
saveImg.href = image.src // Assign image src to our link target
saveImg.download = "imagename.jpg"; // set filename for download
saveImg.innerHTML = "Click to save image"; // Set link text
document.body.appendChild(saveImg); // Add link to page
现在点击链接,图片就会下载
答案2
“按图搜索”扩展
下载 blob 图像的一个简单解决方案是使用按图片搜索由 Armin Sebastian 进行扩展。按图片搜索 → 打开图片将在新选项卡中显示 blob。右键单击该图像并选择将图像另存为...将其保存到文件。
这就是您所需要的,但如果您想看一个例子,请继续阅读。
例子
这幅 1797 年的素描由弗朗西斯科·戈雅 (Francisco de Goya) 创作由 Google 以平铺数据块的形式提供。每个图块都是一个 512x512 的 PNG 图像,但常规的保存方法失败了。
步骤1
随着按图片搜索扩展,使用上下文菜单¹并选择按图片搜索 “打开图片”选项。
步骤 1½
如果无法确定右击的是哪张图片,按图片搜索会要求你选择你想要的一个,就像这样,
第2步
按图片搜索然后创建一个嵌入图像的新标签。
步骤3
右键单击图像以获取浏览器上下文菜单。现在您将能够使用将图像另存为...² 将其下载到您的计算机。
瞧!您的 blob 图像已下载。
¹:谷歌很傻,禁用了右键菜单,但你仍然可以Shift在 Firefox 中使用 + 右键单击或在 Chrome 中使用允许右键单击扩展程序。
²:菜单选项的具体标签取决于所使用的浏览器。我使用的是 Firefox,但此技术适用于 Chrome、Edge、Safari 等。
答案3
我使用了这个库:https://github.com/rndme/download
let img = document.querySelector('.blob-img');
let canvas = document.createElement('canvas');
canvasContext = canvas.getContext && canvas.getContext('2d');
canvas.height = img.naturalHeight;
canvas.width = img.naturalWidth;
canvasContext.drawImage(img, 0, 0);
let imgBase64 = canvas.toDataURL('image/png');
download(imgBase64, 'filename.png');
答案4
另一个选择是使用 GIMP。
右键单击 blob,选择“复制图像”,打开 GIMP,然后粘贴到新文档中。然后,您可以从那里将其导出为 JPG 或您喜欢的任何文件扩展名。