在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 為什么toDataURL出來(lái)的base64是空白的?

為什么toDataURL出來(lái)的base64是空白的?

問(wèn)題描述

為什么toDataURL出來(lái)的base64是空白的?

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

更具已經(jīng)知道的坐標(biāo)點(diǎn),生成圖片,轉(zhuǎn)base64

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)
var area = {

  'ship'  : {'x':10,'y':10,'w':100,'h':25},
  'order'  : {'x':15,'y':40,'w':110,'h':35},
  'port'  : {'x':90,'y':100,'w':180,'h':55}      

}

var base = get_base64('1212121.jpg',area);

for(var i in base){

var img = '<img src="'+base[i]+'">';
$('body').append(img);

}

function get_base64(url,area){

 base=[];
  for(var i in area){
    var base64 = canvas_to_base64(area[i].x,area[i].y,area[i].w,area[i].h,url);
    base.push(base64);
  }
  return base;

}
function canvas_to_base64(ax,ay,aw,ah,url){

  var imgCanvas = $("<canvas id='cava'>")[0];
      imgCanvas.width = aw;
      imgCanvas.height = ah;
  var imgContext = imgCanvas.getContext("2d");
  var img = new Image(); 
  img.src = url;
  img.addEventListener('load',imgeve,false)
  function imgeve(){
    drawScreen();
  }
  function drawScreen(){
    imgContext.drawImage(img, 0, 0);
    imgContext.drawImage(img,ax,ay,aw,ah,0,0,aw,ah);
  }
  // 插入到body中可以顯示出來(lái)
  $('body').append(imgCanvas);
  // 生成的base64是空白的  
  console.log(imgCanvas.toDataURL('image/jpg'));
  return imgCanvas.toDataURL('image/jpg');

}
// 問(wèn)題截出的是透明,只截到畫布?圖片沒插到畫布里面?圖片還沒加載完畢,畫布已經(jīng)截好了?

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

圖片描述

回答
編輯回答
呆萌傻

正如你的猜想,圖片還沒加載完畢,畫布已經(jīng)截好了。

imgCanvas.toDataURL('image/jpg')執(zhí)行的時(shí)候,drawScreen函數(shù)還沒運(yùn)行,所以你獲取不到數(shù)據(jù)。body中可以顯示,因?yàn)槭堑却龍D片加載完成才執(zhí)行的drawScreen函數(shù)。

2017年2月22日 08:12