FabricJS 2 - 图像没有拉伸到给定的宽度
FabricJS 2 - Image isn't stretching to the given width
我刚刚从 fabric 1.7 升级到 2,现在图像对象表现得像 differently.See 屏幕截图,箭头所在的图像完全忽略了我在其上设置宽度的事实,它看起来就像它实际上是根据给定的高度缩放它以保持图像比例。我不希望发生这种情况,图像需要拉伸到我指定的大小。
有人知道如何阻止它这样做吗?我的意思是,如果我在图像对象的选项中设置宽度,我希望它能遵守这些尺寸。它应该被拉伸以填充红色框所在的位置。
例如,当最初将图像加载为正方形并设置 {width:1000,height:400} 时会发生这种情况,但它看起来像是在获取高度并缩小宽度以保持正方形。
您需要设置 scaleX
宽度和 scaleY
高度。这是 v2.
的突破 change
演示版
var canvas = new fabric.Canvas('c');
var index = 0,
json;
var url = '//fabricjs.com/assets/pug.jpg';
fabric.Image.fromURL(url, function(img) {
var elWidth = img.naturalWidth || img.width;
var elHeight = img.naturalHeight || img.height;
img.set({
scaleX:200/elWidth,
scaleY:200/elHeight
})
canvas.add(img);
})
canvas{
border:2px solid #000;
}
<script type="text/javascript" src="
https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="400" height="400"></canvas>
我刚刚从 fabric 1.7 升级到 2,现在图像对象表现得像 differently.See 屏幕截图,箭头所在的图像完全忽略了我在其上设置宽度的事实,它看起来就像它实际上是根据给定的高度缩放它以保持图像比例。我不希望发生这种情况,图像需要拉伸到我指定的大小。
有人知道如何阻止它这样做吗?我的意思是,如果我在图像对象的选项中设置宽度,我希望它能遵守这些尺寸。它应该被拉伸以填充红色框所在的位置。
例如,当最初将图像加载为正方形并设置 {width:1000,height:400} 时会发生这种情况,但它看起来像是在获取高度并缩小宽度以保持正方形。
您需要设置 scaleX
宽度和 scaleY
高度。这是 v2.
演示版
var canvas = new fabric.Canvas('c');
var index = 0,
json;
var url = '//fabricjs.com/assets/pug.jpg';
fabric.Image.fromURL(url, function(img) {
var elWidth = img.naturalWidth || img.width;
var elHeight = img.naturalHeight || img.height;
img.set({
scaleX:200/elWidth,
scaleY:200/elHeight
})
canvas.add(img);
})
canvas{
border:2px solid #000;
}
<script type="text/javascript" src="
https://rawgit.com/kangax/fabric.js/master/dist/fabric.js"></script>
<canvas id="c" width="400" height="400"></canvas>