javaScriptで画像ファイルのwidthとheightを取得したい
当サイトのリニューアル作業に時間をあてるため、掲示板の投稿は当分停止させていただきます。
ドラッグ&ドロップ処理で画像を表示するように
しているのですが、表示する画像のwidthとheight
をinnerHTMLで出力すると0と表示されてしまいます。
画像ファイルの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 />'
}
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 />'
}
持田 さん
03月12日 22時48分
持田さん、こんにちは。
コード拝見しました。
以前書いたblog関連を扱うコードに当てはめてみましたが、たしかに縦横取得できていないようですね。
width = image.width;
height = image.height;
この時点で数値が0になっています。
まだ読み込みが終わっていないから?と仮定してonloadで取得したらOKでした。
このままでは im.naturalWidthはまだ無理ですが、先に取得した数値で代用できますでしょうか。
コード拝見しました。
以前書いた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 />'
}
}
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はまだ無理ですが、先に取得した数値で代用できますでしょうか。
馬場誠 さん
03月13日 09時24分
馬場様
ありがとうございました。
無事、値を持ってくることができました。
また何かと質問することがあると思います。
その時は、またご教授の方をよろしくお願いいたします。
ありがとうございました。<m(__)m>
ありがとうございました。
無事、値を持ってくることができました。
また何かと質問することがあると思います。
その時は、またご教授の方をよろしくお願いいたします。
ありがとうございました。<m(__)m>
持田 さん
03月13日 21時04分