Я пытаюсь получить изображение/снимок экрана определенного элемента в расширении chrome, проблема, с которой я сталкиваюсь, заключается в том, что когда я обрезаю результат от результирующее изображение выключено, если страница увеличена/выведена (с помощью View -> Zoom In
).Захват изображения элемента в расширении хрома (с недостаточным увеличением)
Специально проблема заключается в том, что, поскольку страница масштабируется Смещения/размеры я получаю от скрипта содержания не масштабируется вверх/вниз, так что я в конечном итоге кадрирование неправильную область экрана
Есть ли способ получить/установить текущий уровень масштабирования вкладок? Или определить правильный размер/положение элемента?
Все, что я не нашел в точках Google, чтобы не, но удивительным скриншот делает эту работу как-то
background.js:
chrome.tabs.captureVisibleTab(tab.windowId, { format: "png" }, function(dataUrl) {
console.log('got capture');
if (!canvas) {
canvas = document.createElement("canvas");
document.body.appendChild(canvas);
console.log('created canvas');
}
var image = new Image();
image.onload = function() {
console.log('image loaded, cropping');
canvas.width = dimensions.width;
canvas.height = dimensions.height;
var context = canvas.getContext("2d");
context.drawImage(image,
dimensions.left, dimensions.top,
dimensions.width, dimensions.height,
0, 0,
dimensions.width, dimensions.height
);
console.log('image created');
var croppedDataUrl = canvas.toDataURL("image/png");
chrome.tabs.create({
url: croppedDataUrl,
windowId: tab.windowId
});
}
image.src = dataUrl;
});
контент-скрипт:
console.log('getting dimensions')
var dimensions = {
top: -window.scrollY + $(element).offset().top,
left: -window.scrollX + $(element).offset().left,
width: $(element).width(),
height: $(element).height()
};
console.log('sending dimensions', dimensions);
sendResponse(dimensions);
Проблема в том, что смещения/размеры ошибочны, когда страница увеличена, и она отображает неправильную часть страницы. –
И установка масштабирования% через CSS, похоже, не устраняет масштабирование, вызванное Chrome –
@ ChrisT: Пробовали ли вы настройки стилей смещения масштабирования и т. Д. Через скрипты контента, когда я настраивал значения, которые он здесь работал. – Sudarshan