javascript - 使用 JavaScript(可能是 CSS)在特定宽度/高度的 HTML5 Canvas 中显示完整图像尺寸(100% 宽度/高度)

标签 javascript css html canvas

如何使图像以特定高度和宽度显示在 HTML5 Canvas 中,但图像以 100% 大小显示?换句话说,保持图像的纵横比大小不变。

TreeMap 像 = ' http://kornyezet.sze.hu/images/oktatok/tree3.jpg '

我希望上面这棵树的图像在您可以滚动的范围内以 100% 的大小显示。

例如就像蓝色显示的“溢出:滚动”选项。 http://www.w3schools.com/cssref/tryit.asp?filename=trycss_overflow

图像必须使用 Javascript 来源。

Javascript:

var canvas = document.getElementById('my_canvas'); 
var ctx = canvas.getContext('2d'); 
var imageObj = new Image(); 
ctx.canvas.width = 100; ctx.canvas.height = 100; 
imageObj.onload = function() { 
    ctx.drawImage(imageObj, 0, 0,100,100); 
}; 
imageObj.src = 'http://kornyezet.sze.hu/images/oktatok/tree3.jpg';

HTML

<canvas id="my_canvas"></canvas>

这是一个 JSFIDDLE,但图片来自 Google。如您所见,它显然已调整大小/压缩。相反,我希望在那里可以看到全尺寸图像和某种滚动选项。

http://jsfiddle.net/jzF5R/

谢谢!

最佳答案

通过获取img的宽高,图片加载后设置canvas.widthcanvas.height为你可以设置合适的 Canvas 大小

在此之后,您需要在 Canvas 上以正确的视角绘制图像,设置 imageObj 然后将左上角设置为 0,0 并完成此操作图片的width,height右下角

你可以阅读更多关于它的信息 this link

var canvas = document.getElementById('my_canvas');
  var ctx = canvas.getContext('2d');
  var imageObj = document.getElementById('img');
  imageObj.onload = function(e) {
  ctx.canvas.width = imageObj.width;
  ctx.canvas.height = imageObj.height;
  
    ctx.drawImage(imageObj, 0, 0,imageObj.width,imageObj.height);
    
  };
  imageObj.src = 'https://www.google.com/images/srpr/logo4w.png';
canvas{
  width:100%;
  height:100%;
  position:absolute;

}
  <canvas id="my_canvas"></canvas>
  <img style='display:none;'id='img'/>

关于javascript - 使用 JavaScript(可能是 CSS)在特定宽度/高度的 HTML5 Canvas 中显示完整图像尺寸(100% 宽度/高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36257809/

相关文章:

html - 如何使边框拉伸(stretch)到页面底部?

javascript - 将事件从一个对象委托(delegate)给另一个对象

javascript - 在不受主机页面 CSS 影响的跨域主机页面中创建嵌入式 JavaScript?

javascript - angular-dc 条形图未呈现

javascript - Bootstrap 和 AngularJS : form-control-lg changes only input size, 不是标签

javascript - 在 IE7 中绝对位置 div 位于文本框后面

html - 使用 css 制作加号

javascript - 这个网站如何渲染图像?

javascript - 使用 js 的正则表达式定义,其中允许 4 后面任意两位小数,除了 404

javascript - jQuery获取元素相对于窗口的位置