canvas - FabricJS 缩放图像以适应宽度/大小

标签 canvas html5-canvas fabricjs

如何缩放图像以正确适应容器大小?我想要一个包含两个图像的网格,每个图像都适合提供的大小。

https://codepen.io/peteringram0/pen/gebYWo?editors=0010

img.set({
    left: 0,
    top: 0,
    width: 300,
    height: 300
    // Scale image to fit width / height ?
 });

编辑:对不起,我没有很清楚地解释我的问题。我希望将它定位在网格内,但作为“封面”类型。 https://codepen.io/peteringram0/pen/xWwZmy?editors=0011 .例如。在链接中有 4 张图像在网格中,但图像位于中心并且溢出。我想让每个图像垂直居中,没有超出设置大小的溢出。谢谢(x 应该在中心,同时保持纵横比)

最佳答案

如果要将图像对象缩放到给定的宽度或高度,请使用 scaleToWidthscaleToHeight分别。

我已经从您的代码中删除了 img.set 函数中指定的高度和宽度。并添加了 scaeToHeight 和 scaleToWidth 方法。
使用代码如下。

window.fabric.Image.fromURL(imgUrl, (img) => {
  img.set({
    left: 300,
    top: 0
  });
  img.scaleToHeight(300);
  img.scaleToWidth(300);
  canvas.add(img);
})

看看这个 fiddle :https://jsfiddle.net/hazeebp/195uan6f/1/

关于canvas - FabricJS 缩放图像以适应宽度/大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49195432/

相关文章:

ajax - 使用Grails从 Canvas 上载图像

javascript - Javascript 中点缀字体的坐标

android - HTML5 Canvas 和 Android Canvas 之间的相似之处

javascript - fabricjs 中的图案填充使渲染变慢

javascript - FabricJs、Webpack 未编译 - 严重依赖

php - HTML5 Canvas filltext 和 font-face

Javascript "dragging" Canvas 上的图像

javascript - 从 html5 canvas 到视频

javascript - 在fabricjs中加载和存储svg文件

javascript - 在 JSFiddle 中单击“运行”后代码突然运行。什么?