jsで画像本来のサイズを取得する方法

画像本来のサイズを取得する必要があったので試してみました。
自分の覚え書きの意味も込めて。

jQueryで「$(img).width();」としても表示サイズしか取得出来ず、「display:none;」していると値が0になったりする。ちゃんと取得しようとすると、各ブラウザ毎に仕様が違うらしく非常に手間がかかるので、もっと簡単に出来ないか無いを知恵絞って考えてみました。


例)画像本来のサイズを取得し幅が500px以上あるなら500pxにリサイズ


■html
<img src="sample.jpg" class="resize">


■js
$(window).bind('load', function(){
	var resize = 500;
	$('.resize').each(function(){
		var img = new Image();
		var imgSrc = $(this).attr('src');
		img.src = imgSrc;

		if(img.width < resize){
			return;
		}
		$(this).width(resize);
	}
});

「new Image();」で新しいイメージを作りそこに要素をコピーすると、画像本来の情報を取り扱えるらしい。これなら「display:none;」してても、本来とは違うサイズで表示されてても関係ないし、IE,chrome,safari,Firefoxなどのブラウザにも差は無かった。


関連記事

この記事のハッシュタグに関連する記事が見つかりませんでした。

最新記事

カテゴリー

アーカイブ

ハッシュタグ