【发布时间】:2015-06-20 10:01:58
【问题描述】:
在尝试使用跨浏览器的 HTML5 画布 API 缩放和裁剪图像时,我遇到了一个非常奇怪的问题。
具体来说,我正在尝试通过上下文 API 使用这些参数作为 specified 来找到图像的中心并根据其宽度和高度裁剪一个正方形
context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);
这是我正在使用的代码示例:
<!DOCTYPE html>
<html>
<body>
<p>Image to use:</p>
<img id="scream" width="220" height="277" src="img_the_scream.jpg" alt="The Scream">
<p>Canvas:</p>
<canvas id="myCanvas" width="150" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>
<script>
window.onload = function() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 0, 25, 220, 277, 0, 0, 150, 188);
}
</script>
</body>
</html>
您可以在此处尝试演示: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_canvas_drawimage2
该代码不会在 Safari 的画布上显示任何内容,但它可以在 Chrome 中正确缩放和裁剪图像。
我会上传图片,但 stackoverflow 有一条任意规则,除非我有更高的声誉,否则我不允许发布图片!
如有任何想法,我们将不胜感激!
【问题讨论】:
-
这里是两张图片的链接: Safari:cl.ly/image/3e051H2s2l0b Chrome:cl.ly/image/2M3H2J1U0X15 同样,我无法将它们添加到帖子中,因为我没有足够的声誉。
标签: javascript html canvas drawimage