我使用fabric.Image.fromURL在画布中加载了图像,并且使用默认图像宽度和高度正常工作。 现在我想最小化图像的宽度和高度。 怎么做?
提前致谢。
答案 0 :(得分:9)
我们可以使用scalex / scaley来设置高度/宽度,如下所示。
fabric.util.loadImage(imgsrc, function (img) {
var legimg = new fabric.Image(img, {
left: 30,
top: marker.top,
scaleX: 20 / img.width,
scaleY: 20 / img.height
});
canvas.add(legimg);
canvas.renderAll();
});
由于
答案 1 :(得分:1)
var canvas = new fabric.Canvas('canvas');
document.getElementById('file').addEventListener("change", function (e) {
var file = e.target.files[0];
var reader = new FileReader();
reader.onload = function (f) {
var data = f.target.result;
fabric.Image.fromURL(data, function (img) {
var oImg = img.set({left: 0, top: 0, angle: 00,width:100, height:100}).scale(0.9);
canvas.add(oImg).renderAll();
var a = canvas.setActiveObject(oImg);
var dataURL = canvas.toDataURL({format: 'png', quality: 0.8});
});
};
reader.readAsDataURL(file);
});

canvas{
border: 1px solid black;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script>
<input type="file" id="file"><br />
<canvas id="canvas" width="450" height="450"></canvas>
&#13;
我们可以设置宽度和高度。
检查此JSfiddle:https://jsfiddle.net/varunPes/8gt6d7op/5/
答案 2 :(得分:0)
使用图像比例属性而不是图像大小。这对我有用。当我设置图像宽度和高度而不是比例时,当我应用过滤器时,它会重置回原始宽度和高度,因为比例为1.0。希望这会有所帮助。
答案 3 :(得分:0)
我测试过的这个工作代码:
fabric.Image.fromURL(el.src, function(image) {
image.set({
left: left,
top: top,
angle: 0,
padding: 10,
cornersize: 10,
hasRotatingPoint:true
});
image.scaleToHeight(100);
image.scaleToWidth(200);
canvas.add(image);
});