2012-02-01 155 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)的操作將不會更改其像素數據。