Я сделал расширение хром, которое захватывает один элемент (div) веб-сайта.Скриншот скриншота Chrome для частичного обрезания изображений для Retina Display
Я использовал chrome.tabs> captureVisibleTab, чтобы сделать снимок экрана. Затем, с координатами (x/y) и размерами (шириной/высотой) элемента (div), я обрезаю снимок экрана.
Это отлично работает для меня на дисплеях, не содержащих сетчатки. Но не так на Macbook с дисплеем Retina.
Например, на www.247activemedia.com мы хотим захватить заголовок div логотипом (id = "header").
На Macbook с дисплеем Retina:
Обрезка не удалось там, а также resultion не является правильным.
Вот код:
chrome.tabs.captureVisibleTab(tab.windowId, { format: "png" }, function(screenshot) {
if (!canvas) {
canvas = document.createElement("canvas");
document.body.appendChild(canvas);
}
var partialImage = new Image();
partialImage.onload = function() {
canvas.width = dimensions.width;
canvas.height = dimensions.height;
var context = canvas.getContext("2d");
context.drawImage(
partialImage,
dimensions.left,
dimensions.top,
dimensions.width,
dimensions.height,
0,
0,
dimensions.width,
dimensions.height
);
var croppedDataUrl = canvas.toDataURL("image/png");
chrome.tabs.create({
url: croppedDataUrl,
windowId: tab.windowId
});
}
partialImage.src = screenshot;
});
Как я могу это исправить для Retina дисплеев?
Там это исправить здесь: http://outof.me/chrome-extension-retina-capturevisibletab-translate3d-2-x-res/ – gui47
Я нашел это, но дон» я знаю, как это сделать в деталях. Я не использую IFrames ... Если я использую метод context.scale, тогда все становится маленьким. – Danzzz