【问题标题】:Resize image from base64从base64调整图像大小
【发布时间】:2012-02-24 03:39:58
【问题描述】:

我使用 FileReader 获取图像的 base64 代码。 如果我使用画布并放入画布base64。比为画布应用调整大小。我得到了新图像的新 base64 代码?

代码示例。

reader.onloadend = function(event) {
      var canvas = document.getElementById("temp_canvas");
      var context = canvas.getContext("2d");
      var imageObj = new Image();
      imageObj.onload = function() {
          var ratio = (imageObj.width > imageObj.height)?Math.ceil(imageObj.width / imageObj.height):Math.ceil(imageObj.height / imageObj.width);
          console.log(ratio);
          if(imageObj.width > 512) {
              imageObj.width = 512
              imageObj.height = imageObj.width * ratio;
          }
          console.log(imageObj.width);
          console.log(imageObj.height);
          $(canvas).attr('width',imageObj.width);
          $(canvas).attr('height',imageObj.height);
          context.drawImage(imageObj,0,0,imageObj.width,imageObj.height);
      }
      imageObj.src = event.target.result;
      $('.image-for-crop').attr('src',event.target.result);
      $('#dialog-foto').dialog({modal:true});
  }

如果我这样做 var dataURL = canvas.toDataURL();

我的主要问题是:“任何时候我改变画布:裁剪,调整大小等这个画布的base64代码也会改变?”

【问题讨论】:

  • 您能补充更多信息吗?我不确定你在问什么
  • Base64 不是图像格式,它是二进制数据的编码。在您的 base64 中编码的是某种类型的图像数据;它可以是任何格式,例如 jpg、png、... 甚至可以是原始数据。
  • 我放了关于问题的更多信息。
  • 是否可以选择操作二进制数据来进行一些图像修改?

标签: html canvas base64 filereader


【解决方案1】:

是的,您使用2d context API 所做的任何更改都将出现在canvas.toDataURL() 的结果中。然而,DOM 操作,如调整 元素的大小(例如 myCanvas.style.width = 100)不会改变它的像素数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2018-12-03
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多