我可以将本地图像添加到画布。但我的问题是,我只能按以下方式缩放图像
0.5
但这并没有多大帮助,因为图像总是不同的。我怎么能让图像缩放到400px宽,但剩下的
按比例调整大小
因此,无论所选图像的大小,都是合适的,而且这不是一个猜测游戏(目前我有一个指向图像大小调整器的链接,我正在尝试消除这种需要)?
我使用的是fabricjs 1.7.21。
var canvas = new fabric.Canvas("c");
canvas.setHeight(616);
canvas.setWidth(446);
// New Photo to Canvas
document.getElementById('imgLoader').onchange = function handleImage(e) {
var reader = new FileReader();
reader.onload = function(event) {
var imgObj = new Image();
imgObj.src = event.target.result;
imgObj.onload = function() {
var image = new fabric.Image(imgObj);
image.set({
left: 10,
top: 10,
}).scale(0.5);
canvas.add(image);
}
}
reader.readAsDataURL(e.target.files[0]);
}
canvas {
border: 1px solid #dddddd;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.21/fabric.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="btn btn-default" id="imgLoader">
<span class="oi oi-image"></span> Add Image<input type="file" hidden>
</label>
<canvas id="c"></canvas>