Можно ли получить высоту / ширину изображения, которого нет в DOM? - PullRequest
6 голосов
/ 16 сентября 2011

Можно ли получить высоту и ширину изображения в файловой системе, используя JavaScript (то есть изображение, которое не является частью DOM)? Или мне придется использовать JavaScript, чтобы внедрить изображение в DOM и получить размеры таким образом?

Я спрашиваю, потому что я пишу метод JavaScript для визуализации компонента пользовательского интерфейса на лету, сгенерированного Raphaël, который принимает три пути изображения как часть параметров метода. Затем они используются для визуализации вышеупомянутого компонента пользовательского интерфейса, и мне нужны размеры изображений для позиционирования.

Заранее спасибо.

Ответы [ 4 ]

9 голосов
/ 16 сентября 2011

Я думаю, что пока изображение загружено, вы можете захватить ширину и высоту - вам не нужно вводить его в DOM. Например:

var tmp = new Image();
tmp.onload = function() {
    console.log(tmp.width + ' x ' + tmp.height);
}
tmp.src = 'http://cdn.sstatic.net/stackoverflow/img/sprites.png?v=4';
4 голосов
/ 16 сентября 2011

Вы не можете обязательно попасть в «файловую систему», но вы можете сделать это:

v = new Image();
v.onload = function() {
  alert("size: " + String(v.width) + 'x' + String(v.height));
};
v.src = "http://www.gravatar.com/avatar/96269f5a69115aa0e461b6334292d651?s=32&d=identicon&r=PG";

Считаете ли вы это "добавлением в DOM"?

1 голос
/ 16 сентября 2011

Вы можете скачать изображение с кодом:

var img=new Image(),imgWidth,imgHeight;
img.onerror=img.onload=function(ev) {
  ev=ev||event;
  if(ev.type==="error") {
    imgWidth=imgHeight=-1; // error loading image resourse
  }
  else {
    imgWidth=this.width; // orimgWidth=img.width
    imgHeight=this.height; // imgHeight=img.height
  }
}
img.src="url_to_image_file";
0 голосов
/ 16 сентября 2011

Можно ли получить высоту и ширину изображения в файловой системе, используя JavaScript (то есть изображение, которое не является частью DOM)?

  • Нет

Или мне придется использовать JavaScript, чтобы вставить изображение в DOM и получить размеры таким образом?

  • Да
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...