我如何在chrome扩展中使用javascript截取一些特定区域的屏幕截图
How can I take screenshot of some specific area using javascript in chrome extension?
我正在制作一个chrome扩展,我想截取当前窗口的特定部分,而不是整个窗口本身的屏幕截图。
现在,我一直在使用这个API的chrome
chrome.tabs.captureVisibleTab(null,{},function(dataUri){
// datauri is the screenshot
});
它截取了整个页面的截图,但我想截取给定的x,y坐标。
我怎样才能达到同样的效果呢?
非常感谢!
一种可能的方法是:
- 使用
CanvasRenderingContext2D.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
将截图绘制到画布上,同时使用相应的参数裁剪图像 - 使用
HTMLCanvasElement.toDataURL
将画布转换为包含图像表示的数据URI,或者使用CanvasRenderingContext2D.getImageData()
返回ImageData对象,这取决于您的需要。
示例代码(请注意,根据您的需要,您可能希望将内部逻辑移动到内容脚本):
chrome.tabs.captureVisibleTab(null, {}, function(dataUri) {
var img = new Image();
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = WIDTH;
canvas.height = HEIGHT;
var context = canvas.getContext('2d');
// Assuming px,py as starting coordinates and hx,hy be the width and the height of the image to be extracted
context.drawImage(img, px, py, hx, hy, 0, 0, WIDTH, HEIGHT);
var croppedUri = canvas.toDataURL('image/png');
// You could deal with croppedUri as cropped image src.
};
img.src = dataUri;
});
相关文章:
- 获取屏幕截图并在电子邮件中发送的按钮
- 如何使用selenium和同步JS进行屏幕截图
- 使用javascript api创建youtube的屏幕截图
- 删除闪烁的光标进行网络屏幕截图测试
- 如何在html和javascript中捕捉聚合物元素的屏幕截图
- Phanomjs 未正确捕获网页的屏幕截图
- UIWebview在页面上执行注入的JavaScript后的屏幕截图
- 限制从iPad拍摄屏幕截图
- 使用Html2Canvas的文本区域屏幕截图
- 从json文件输出多个屏幕截图(例如itunes搜索api)
- 点击按钮即可创建网页的图片/pdf/屏幕截图
- 将谷歌地图另存为图像 - 使用javascript(能够截取屏幕截图)
- 如何在 Phaser 框架中截取画布的屏幕截图
- 如何截取 HTML 表单的屏幕截图
- 如何使用HTML2canvas截取拖放元素的屏幕截图
- 是否可以在服务器端截取渲染的 DOM 的屏幕截图
- 截取当前屏幕的屏幕截图,并通过php将其保存为PNG图像
- 用Javascript截取一个单页应用程序的屏幕截图
- 从控制台窗口中截取屏幕截图,以检查Google跟踪代码管理器是否已触发
- 我如何在chrome扩展中使用javascript截取一些特定区域的屏幕截图