2013-07-21 3 views

답변

86
var i = new Image(); 

i.onload = function(){ 
alert(i.width+", "+i.height); 
}; 

i.src = imageData; 
+0

그냥 굉장한, 크기를 확인하는 데 절반 시간이 걸립니다, 정말 고마워요! – bombastic

+2

너무 비싸서 비동기 프로세스입니다. –

+0

@CoenDamen 예. 동기식 프로세스가 필요합니다. –

3

해당 이미지로 숨겨진 <img>을 만든 다음 jquery .width() 및를 사용하십시오. 여기에 높이()

$("body").append("<img id='hiddenImage' src='"+imageData+"' />"); 
var width = $('#hiddenImage').width(); 
var height = $('#hiddenImage').height(); 
$('#hiddenImage').remove(); 
alert("width:"+width+" height:"+height); 

테스트 : FIDDLE

이미지가 초기에 숨겨진 만들어지지 않습니다. 생성되면 폭과 높이를 얻은 다음 제거합니다. 이 경우 큰 이미지에서는 다른 컨테이너에서 이미지를 래핑하고 해당 컨테이너를 이미지 자체가 아닌 숨겨야합니다.


GP의 답변에 따라 DOM에 추가하지 않습니다 또 다른 바이올린 :.이 HERE

+0

당신에게 너무 감사합니다 :

function getImageDimensions(file) { return new Promise (function (resolved, rejected) { var i = new Image() i.onload = function(){ resolved({w: i.width, h: i.height}) }; i.src = file }) } 

는 다음 동기 코딩 스타일의 데이터를 얻기 위해 기다리고 있습니다 사용할 수 있습니다 당신은 나에게 약간의 예를 보여 주겠습니까? – bombastic

+0

바이올린으로 편집 됨 – Desu

+0

지금은 분명히 남자입니다. D – bombastic

0

동기 사용은이 같은 약속으로 포장의 경우 : 수,

var dimensions = await getImageDimensions(file)