javaScriptで画像ファイルのwidthとheightを取得したい | 質問掲示板 | 独学!未経験からWebデザイナーになる!!

Web制作や付随することを何でも質問できるコーナーです。

未経験からWebデザイナーになる!! > 質問掲示板 > カテゴリ: JavaScript > javaScriptで画像ファイルのwidthとheightを取得したい

javaScriptで画像ファイルのwidthとheightを取得したい

当サイトのリニューアル作業に時間をあてるため、掲示板の投稿は当分停止させていただきます。
ドラッグ&ドロップ処理で画像を表示するように

しているのですが、表示する画像のwidthとheight

をinnerHTMLで出力すると0と表示されてしまいます。

画像ファイルのwidthとheightを取得するにはどうす

ればいいでしょうか? よろしくお願いします。


下記は、画像出力部分のソースです。


// 画像の出力
function outputImage(blob) {


im=document.createElement('image');
var
// 画像要素の生成
image = new Image(),

// File/BlobオブジェクトにアクセスできるURLを生成
blobURL = URL.createObjectURL(blob);

// src にURLを入れる

image.src = blobURL;

width = image.width;
height = image.height;



im.setAttribute('src', blobURL);
im.setAttribute('width', '400');
im.setAttribute('height', '250');
output.appendChild(im);
output.innerHTML += blob.name + im.naturalWidth     + '<br />'



}
持田さん、こんにちは。

コード拝見しました。
以前書いたblog関連を扱うコードに当てはめてみましたが、たしかに縦横取得できていないようですね。

width = image.width;
height = image.height;

この時点で数値が0になっています。
まだ読み込みが終わっていないから?と仮定してonloadで取得したらOKでした。


// 画像の出力
function outputImage(blob) {
im=document.createElement('image');
var
// 画像要素の生成
image = new Image(),

// File/BlobオブジェクトにアクセスできるURLを生成
blobURL = URL.createObjectURL(blob);

// src にURLを入れる
image.src = blobURL;

image.onload = function () {
width = image.width;
height = image.height;

console.log(image.width);
console.log(image.height);

im.setAttribute('src', blobURL);
im.setAttribute('width', '400');
im.setAttribute('height', '450');
output.appendChild(im);
output.innerHTML += blob.name + im.naturalWidth + '<br />'
}
}


このままでは im.naturalWidthはまだ無理ですが、先に取得した数値で代用できますでしょうか。
馬場様 

ありがとうございました。


無事、値を持ってくることができました。


また何かと質問することがあると思います。


その時は、またご教授の方をよろしくお願いいたします。


ありがとうございました。<m(__)m>