我正在使用 Html5、fabric.js 和 Java 脚本。我在 Canvas 中上传多张图片,但有时上传的图片比 Canvas 大。我希望图像设置为固定大小。
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: 50, top: 100, angle: 00}).scale(0.9);
canvas.add(oImg).renderAll();
var a = canvas.setActiveObject(oImg);
var dataURL = canvas.toDataURL({format: 'png', quality: 0.8});
console.log("aaaaaaaaaaa" + dataURL);
// console.log("Canvas Image " + dataURL);
// document.getElementById('txt').href = dataURL;
});
};
reader.readAsDataURL(file);
});
document.querySelector('#txt').onclick = function (e) {
e.preventDefault();
canvas.deactivateAll().renderAll();
document.querySelector('#preview').src = canvas.toDataURL();
}
canvas{
border: 1px solid black;
}
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script>
<input type="file" id="file">
<canvas id="canvas" width="750" height="550"></canvas>
<a href='' id='txt' target="_blank">Click Me!!</a>
<br />
<img id="preview" />
上传前:
上传后:
我希望每个图像都固定大小。上传图片后,用户可以更改大小、 Angular 和其他属性。
最佳答案
在您的代码中添加特定尺寸的高度和宽度,如下所示。
var oImg = img.set({width: 150, height: 150, left: 50, top: 100, angle: 00}).scale(0.9);
关于javascript - 自动调整 Canvas 中的图像,如果图像分辨率大于 Html5 中的 Canvas 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34737288/