【发布时间】:2016-06-12 00:36:58
【问题描述】:
我正在尝试使用 chrome 扩展获取页面的屏幕截图并尝试裁剪图像。截屏后,我得到了图像的 base64 dataUrl。
当我尝试使用 dataURL 渲染图像时,图像渲染得比原始图像更大(看起来放大了)。当我手动为 <img> 对象提供原始大小时,它呈现得很好。但是当我将此图像绘制到画布上时,画布会采用放大的尺寸。
我一直在努力寻找解决此问题的方法,但无济于事。非常感谢任何帮助。
//Here is the JS code:
var image = document.getElementById("image");
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
image.onload = function() {
var sourceX = 0;
var sourceY = 0;
var sourceWidth = 150;
var sourceHeight = 80;
var destWidth = sourceWidth;
var destHeight = sourceHeight;
var destX = 0;
var destY = 0;
context.drawImage(image, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight);
};
这里是 HTML 代码,我正在删除 dataurl,因为它占用太多空间,并粘贴另一个 URL。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<img height = "678" width = "1280" id = "image" src = "http://s12.postimg.org/7r9q3h2vx/ss2.jpg"/>
<canvas id="myCanvas" width="500" height="200"></canvas>
</body>
</html>
以下是我要裁剪的图片(来自dataurl):
以下是我得到的裁剪图像。这不是预期的图像,因为它看起来被放大(放大)。它是原始图像的左上角。
更多参考,这里是jsbin链接:https://jsbin.com/pomayowara/edit?output
【问题讨论】:
标签: javascript html image css html5-canvas