1

我想在 Chrome 扩展程序中捕获 Chrome 的当前页面。然后我发现

chrome.tabs.captureVisibleTab(integer windowId, object options, function callback)

回调函数就像

function(string dataUrl) {...};

当我尝试使用这个 API 时,我得到的 dataUrl 就像

data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwME…OdiCJJMxdVYyueT/tGodJ0nTdBsks9Ogt7G0RmZYIAFRcnJwOw9B0AwBgAUUV9AZFeiiigD//Z...

但我想使用此图像文件位置或将其保存到另一个位置。那么我该如何实现呢?
或者有没有其他方法可以捕获网页截图,然后将此页面保存为 chrome 扩展名中的文件?

4

1 回答 1

1

您可以将 base64 编码的 jpeg 发送到运行 php 的服务器以保存文件。 此示例忽略安全性以简化示例

<?php
$screenshot = $_POST['screenshot'];
$screenshot = str_replace('data:image/jpeg;base64,', '', $screenshot);
$screenshot = str_replace(' ', '+', $screenshot);
$data = base64_decode($screenshot);
$file = uniqid() . '.jpeg';
$success = file_put_contents($file, $data);

然后,您可以让服务器返回对要下载的图像的引用。

于 2013-04-04T19:54:13.847 回答