18

base64画像の幅と高さを見つける方法

<img id="thumb0" width="200" height="200" 
src="data:image/png;base64, ................">

画像プロパティの幅と高さは、サムネイルとして表示する必要があるため一定ですが、元の画像プロパティは異なります。

元の画像の高さと幅を取得する必要があります。

元の画像の高さと幅が750X500であるとします。

私はこのように試しましたが、プロパティの幅と高さを取得します

$("#thumb0").width();

値は200です。

画像の元の幅と高さを取得する方法を教えてください。

4

2 に答える 2

18

別の画像要素を作成して、そのサイズを取得できます。

var img = new Image();
img.src = $('#thumb0').attr('src');
var originalWidth = img.width;
于 2013-01-11T09:10:41.583 に答える
13

dystroyの回答で言及されているHTMLImageElementsのImage()コンストラクターは正しい方法ですが、注意点があります。コンストラクターは実際には非同期です。その結果、特定のブラウザで予期しない動作が発生する可能性があります。私の限られた実験から、dystroyのコードはChromeで100%動作しますが、FirefoxとSafariではたまにしか動作しません。他人のことは知らない。

それを行う正しい方法は、次のように、onloadハンドラーを使用することのようです。

var img = new Image();
img.src = some_base64_image_source;
console.log(img.width);       // This might print out 0!
img.onload = function() {
    console.log(img.width);   // This will print out the width.
}
于 2015-03-30T18:21:19.087 に答える