javascript - 自动调整 Canvas 中的图像,如果图像分辨率大于 Html5 中的 Canvas 大小

标签 javascript css html canvas fabricjs

我正在使用 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" />

上传前:

enter image description here

上传后:

enter image description here

我希望每个图像都固定大小。上传图片后,用户可以更改大小、 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/

相关文章:

JavaScript 下拉菜单。并非所有选项和选择标签都显示

javascript - 调用主进程的函数

html - CSS 选项卡设置中标签的不同样式

css - 没有运算符的jqgrid搜索

css - 删除类似样式 =""的 html 垃圾

HTML/CSS - 让 child 留在 parent 里面?

html - Css:最小高度解释为高度(iPhone webapp)

javascript - 开 Jest - 将测试分开到另一个文件中

javascript - 链接谷歌表格以自动创建日历事件并在更新谷歌表格时更新它们

javascript - 使用 CasperJS 等待元素具有特定文本