Ответ 1
Здесь функция, которая должна делать то, что вам нужно. Вы указываете URL-адрес изображения (например, результат от chrome.tabs.captureVisibleTab
, но это может быть любой URL-адрес), нужный размер и обратный вызов. Он выполняется асинхронно, потому что нет гарантии, что изображение будет загружено сразу же после установки свойства src
. С URL-адресом данных, вероятно, будет, так как ему не нужно ничего скачивать, но я его не пробовал.
Обратный вызов будет передан результирующее изображение в виде URL-адреса данных. Обратите внимание, что полученное изображение будет PNG, поскольку реализация Chrome toDataURL
не поддерживает изображение /jpeg.
function resizeImage(url, width, height, callback) {
var sourceImage = new Image();
sourceImage.onload = function() {
// Create a canvas with the desired dimensions
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
// Scale and draw the source image to the canvas
canvas.getContext("2d").drawImage(sourceImage, 0, 0, width, height);
// Convert the canvas to a data URL in PNG format
callback(canvas.toDataURL());
}
sourceImage.src = url;
}