javascript – Chrome扩展程序屏幕截图Retina Display的部分图像裁剪
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Chrome扩展程序屏幕截图Retina Display的部分图像裁剪,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1166字,纯文字阅读大概需要2分钟。
内容图文
![javascript – Chrome扩展程序屏幕截图Retina Display的部分图像裁剪](/upload/InfoBanner/zyjiaocheng/766/5372d27505264e16907aeb86674a0511.jpg)
我做了一个chrome扩展,它捕获了一个网站的单个元素(div).
我用过chrome.tabs> captureVisibleTab制作截图.然后,使用元素(div)的坐标(x / y)和大小(宽度/高度),我剪裁截图.
在非视网膜显示器上这对我来说很好.但在具有Retina显示屏的Macbook上却不是这样.
例如,在www.247activemedia.com上,我们想要使用徽标(id =“header”)捕获标题div.
在非视网膜上的结果是:
在带有Retina显示屏的Macbook上:
那里的种植失败了,结果也不正确.
这是代码:
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 Displays修复此问题?
解决方法:
好的,感谢@ gui47 – 答案是使用window.devicePixelRatio来检测比例,它在我的MBP上返回2
内容总结
以上是互联网集市为您收集整理的javascript – Chrome扩展程序屏幕截图Retina Display的部分图像裁剪全部内容,希望文章能够帮你解决javascript – Chrome扩展程序屏幕截图Retina Display的部分图像裁剪所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。