2012-02-01 160 views
1

我使用FileReader获取图像的base64代码。 如果我使用画布并放入画布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();

我的主要问题是:“任何时候当我改变画布:裁剪,调整此画布的e.t.c. base64代码也改变?

+0

你可以添加更多的信息吗?我不知道你要求什么 – Undefined 2012-02-01 13:00:34

+0

Base64不是一种图像格式,它是二进制数据的编码。在你的base64中编码是某种类型的图像数据;它可以是任何格式,比如jpg,png,...甚至可以是原始数据。 – 2012-02-01 13:10:06

+0

我提出了更多关于问题的信息。 – 2012-02-01 13:22:57

回答

1

是的,您使用2d context API所做的任何更改都会显示在canvas.toDataURL()的结果中。但是,像调整<画布>元素(示例myCanvas.style.width = 100)的操作将不会更改其像素数据。