如何获得外部/场外图像的高度?

时间:2014-01-03 15:13:43

标签: javascript jquery html

是否可以使用Javascript获取外部图像的高度?

4 个答案:

答案 0 :(得分:4)

您可以预先加载图像并找到它

var img = document.createElement('img');
img.onload = function () {
    console.log(this.height, this.width)
}
img.src = '//placehold.it/64X45'

演示:Fiddle

答案 1 :(得分:4)

如果没有加载图片,

无法执行此操作。 您可以使用javascript Image对象执行此操作:

var image = new Image();
image.onload = function(e) {
    alert('Height : ' +e.currentTarget.naturalHeight + ' width:'+e.currentTarget.naturalWidth);
};
image.src = 'link goes here'; 

DEMO

答案 2 :(得分:1)

不可能开箱即用。它只会给你mime类型和内容长度。 您必须加载图像以找出其像素宽度和高度。

或者,您可以通过编程方式在响应标头中添加维度(如果您有权访问),然后您可以使用http“HEAD”命令返回标题。

答案 3 :(得分:1)

可能可以使用 ImageInfo - Javascript图像元数据阅读器http://blog.nihilogic.dk/2008/08/imageinfo-reading-image-metadata-with.html
(可以获取标题,但根据脚本描述取决于文件类型)

在这里演示:
http://www.nihilogic.dk/labs/imageinfo/

我还没有尝试过,但我记得看过这个并想出类似的方法。它引用了:

  

由于标题信息通常只占很小的一部分   在图像文件中,有一个选项只能请求多个字节   从文件的开头。设置ImageInfo.useRanges = true   和ImageInfo.range = <n>,只有第一个<n>个字节   下载。但是,由于头信息的位置   JPEG文件不是固定的(也不是任何EXIF数据的大小),这个   已被留作选项。如果您不使用JPEG文件或   如果您知道您的JPEG没有嵌入的缩略图,那么您应该这样做   可以安全地将其设置为仅获得前几个KB左右。