2014-10-24 4 views
0

이미지를 업로드 중이며 해당 이미지의 base64 데이터가 필요합니다. 아래 코드는 이미지 데이터를 base64로 가져 오는 것입니다.base64 데이터에서 이미지 너비 및 높이 속성을 가져올 수 없습니다.

제대로 작동하고 이미지가 올바르게로드 된 img 태그가 생성됩니다.

는하지만 img 요소를 작성하기 전에 이미지의 폭과 높이를 알고 싶은, 그래서 난, 코드 아래

2) function getImage(file,count) 
{ 
if(file) 
{    
    var reader = new FileReader(); 
    reader.onload = function(event) 
    { 
     var img = new Image(); 
     var data = event.target.result; 
     img.onload = function(){ 
      console.log(img.width); 
      var image = document.createElement("img"); 
      image.id = 'img'+count; 
      image.class = 'edit'; 
      image.src = data;   
      console.log('width:'+this.width); 
      console.log('height:'+this.height); 
      image.data = count; 
      data = image.dataset; 
      data.ref=count; 
      document.getElementById('image'+count).appendChild(image); 
      jQuery(document.getElementById('image'+count)).removeClass('disable'); 
      jQuery(document.getElementById('img'+count)).addClass('action editable img '); 
     }; 
    } 
    reader.readAsDataURL(file); 
} 
} 

을 시도하지만 두 번째 코드 인쇄는 기록하지 않습니다 및 img 태그가 만들어지지 않습니다. 그래서 문제가 무엇입니까? 내 코드에서 무엇이 잘못 되었습니까? 이것을 달성하는 더 좋은 방법은 무엇입니까?

+0

당신이 시도 .. 더 나은 답변을 기다리는 중? "this.widht"대신 "img.width"를 사용 하시겠습니까? –

+0

예 @WaqasAhmed, 심지어 간단한'console.log ('myname');은 onload 함수의 첫 번째 줄에서 작동하지 않습니다. –

+1

다음 URL에서 FileReader 예제를 사용하려고합니다. http://codepen.io/matt-west/pen/KjEHg var imageData = reader.result; var i = new Image(); i.onload = function() { 경고 (i.width + ","+ i.height); }; i.src = imageData; reader.onload 함수에 을 시도해보십시오. –

답변

0

단지 한 줄로 내 문제가 null이됩니다. 덕분에 this.

function getImage(file,count) 
{ 
if(file) 
{    
    var reader = new FileReader(); 
    reader.onload = function(event) 
    { 
     var img = new Image(); 
     var data = event.target.result; 
     img.src = data; //this line solved my problem.. 
     img.onload = function(){ 
      var image = document.createElement("img"); 
      image.id = 'img'+count; 
      image.class = 'edit'; 
      image.src = data;   
      console.log('width:'+this.width); 
      console.log('height:'+this.height); 
      image.data = count; 
      data = image.dataset; 
      data.ref=count; 
      document.getElementById('image'+count).appendChild(image); 
      jQuery(document.getElementById('image'+count)).removeClass('disable'); 
      jQuery(document.getElementById('img'+count)).addClass('action editable img '); 
     }; 
    } 
    reader.readAsDataURL(file); 
} 
} 

관련 문제