110

ここで見つけることができるエンコードされた base64 img があります。高さと幅を取得するにはどうすればよいですか?

4

4 に答える 4

173
var i = new Image(); 

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

i.src = imageData; 
于 2013-07-21T18:06:00.693 に答える
20

.naturalWidth使用し.naturalHeightて最良の結果が得られたことがわかりました。

const img = new Image();

img.src = 'https://via.placeholder.com/350x150';

img.onload = function() {
  const imgWidth = img.naturalWidth;
  const imgHeight = img.naturalHeight;

  console.log('imgWidth: ', imgWidth);
  console.log('imgHeight: ', imgHeight);
};

ドキュメント:

これは最新のブラウザでのみサポートされています。http://www.jacklmoore.com/notes/naturalwidth-and-naturalheight-in-ie/

于 2014-11-14T16:15:13.513 に答える
2

その画像で非表示を作成し、<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. の anser に従って dom に追加されない別のフィドル: HERE

于 2013-07-21T17:26:21.967 に答える