javascript-HTML5 Canvas-从HTML调整大小的图像绘制图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-HTML5 Canvas-从HTML调整大小的图像绘制图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2173字,纯文字阅读大概需要4分钟。
内容图文
在HTML的img标签中设置width或height属性后,如何简单地调用drawImage()进行调整?
Here’s a jsfiddle demo to show what I mean.
的HTML
<!--Try adding width="200" to the img tag below.
You'll see that the original image (left on
the output) is resized accordingly, but the
drawImage rendering is not. If you console.log
imgs.width, it's set to 200, but the
result is unchanged.
-->
<img src="https://i.imgur.com/mbXJe0f.png" width="200">
的JavaScript
imgs = document.getElementsByTagName('img')[0];
//I set EVERYTHING I know about to the proper values, just to see what happens
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
var context = canvas.getContext('2d');
style = '';
style += 'width:'+imgs.width+'px;';
style += 'height:'+imgs.height+'px;';
canvas.setAttribute('style',style);
canvas.width = imgs.width;
canvas.height = imgs.height;
console.log(imgs.width,imgs.height);
var testImage = new Image();
testImage.src = imgs.src;
testImage.width = imgs.width;
testImage.height = imgs.height;
testImage.onload = function() {
square = 100;
context.drawImage(this,150,70,square,square,0,0,square,square);
}
在该演示中,如果在唯一的img标签上设置width属性,则会看到左侧的图像发生了变化(原始),而右侧的图像没有发生变化(drawImage渲染).
我知道我将testImage.src设置为原始src,但是我还设置了宽度和高度,如果打开开发人员控制台日志,则将对其进行调整.
为什么是这样?我可以调整该代码以使其相应地进行调整吗?
此处的预期结果将是drawImage渲染显示更大的图片区域.很容易看出它没有调整大小-“无限”符号在它们应该相同的地方具有不同的大小.
解决方法:
您无法更改原始图像的尺寸.您只能使用CSS调整其大小,这会导致其缩放-但原始大小将是原始大小,因此更改图像的宽度和高度属性将不起作用(要缩放,可以使用img.style.width和img.style.height,但这不会影响数据本身,只会影响数据到浏览器窗口的呈现).
对于画布和较小的较大图像,必须在目的地而非源上设置新的尺寸.
修饰的小提琴:
http://jsfiddle.net/L3495/4/
(在您的图片加载事件中):
context.drawImage(this, 0, 0, this.width, this.height,
0, 0, newWidth, newHeight);
在这里,您使用与原始图像相同的源进行绘制.此处的来源告诉画布使用整个图像.
然后,以所需的大小将其绘制到目的地.
在小提琴中,您看到我将原始图像的画布大小设置为演示的一半.这将是为目标值绘制图像的大小.
内容总结
以上是互联网集市为您收集整理的javascript-HTML5 Canvas-从HTML调整大小的图像绘制图像全部内容,希望文章能够帮你解决javascript-HTML5 Canvas-从HTML调整大小的图像绘制图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。