Вот функция, которая должна делать то, что вам нужно. Вы даете ему URL изображения (например, результат из chrome.tabs.captureVisibleTab
, но это может быть любой URL), желаемый размер и обратный вызов. Он выполняется асинхронно, поскольку нет гарантии, что изображение будет загружено сразу после установки свойства src
. С URL-адресом данных это, вероятно, будет, поскольку ему не нужно ничего скачивать, но я не пробовал.
Обратному вызову будет передано полученное изображение в виде URL-адреса данных. Обратите внимание, что полученное изображение будет в формате PNG, поскольку реализация Chrome toDataURL
не поддерживает image / 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;
}