当前位置: 首页 > 面试题库 >

使用JavaScript获取图像的实际宽度和高度?(在Safari / Chrome中)

郎正初
2023-03-14
问题内容

我正在创建一个jQuery插件。

如何在Safari中使用Javascript获得真实的图像宽度和高度?

以下适用于Firefox 3,IE7和Opera 9:

var pic = $("img")

// need to remove these in of case img-element has set width and height
pic.removeAttr("width"); 
pic.removeAttr("height");

var pic_real_width = pic.width();
var pic_real_height = pic.height();

但是在Webkit浏览器中,例如Safari和Google Chrome的值为0。


问题答案:

Webkit浏览器在加载图像后设置height和width属性。建议不要使用超时,而建议使用图像的onload事件。这是一个简单的示例:

var img = $("img")[0]; // Get my img elem
var pic_real_width, pic_real_height;
$("<img/>") // Make in memory copy of image to avoid css issues
    .attr("src", $(img).attr("src"))
    .load(function() {
        pic_real_width = this.width;   // Note: $(this).width() will not
        pic_real_height = this.height; // work for in memory images.
    });

为了避免CSS对图像尺寸可能产生的任何影响,上面的代码对图像进行了内存复制。这是FDisk建议的非常聪明的解决方案。

您还可以使用naturalHeightnaturalWidthHTML5属性。



 类似资料:
  • 问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。

  • 问题内容: 除了使用ImageIO.read来获取图像的高度和宽度外,还有其他方法吗? 因为我遇到了锁定线程的问题。 此错误仅在Sun应用服务器上发生,因此我怀疑这是Sun错误。 问题答案: 这很简单方便。

  • 我有一个Vue组件,在它里面我有一个img,我需要得到图像尺寸,最好是在显示图像之前(通过宽度或高度来适应容器)。 该代码可能无法工作,映像src可以返回401(还不确定),我们使用代理并从服务器上的存储桶中获取该文件。比如/api/getStorageResource?斑点= 我能做什么呢? 有了链接,我可以通过axios获取图像并将其设置为元素,而不是

  • 问题内容: 我试图在没有ImageObserver的情况下在Java中获取和的图像(通过URL)。我当前的代码是: 当我进入调试模式时,我可以看到该图像已加载,并且可以看到该图像的和,但是我似乎无法返回它们。该和方法需要的图像观察者,我没有。先感谢您。 问题答案: 您可以使用ImageIcon为您处理图像的加载。 更改 至 主要的变化是在使用,和,方法。

  • 我正试图给我的图像一个风景或肖像类在一个Wordpress图像库通过测量图像的尺寸负载。该代码在Safari中工作,但Firefox返回0像素的宽度和高度,Chrome有时会正确加载它们,有时则不会。我很困惑,有人能帮我吗?

  • 问题内容: 为什么下面的代码返回高度:-1,这意味着高度未知。如何获得图像的高度? 问题答案: 使用ImageIO.read(URL)或ImageIO.read(File)代替。加载时它将阻塞,返回后将知道图像的宽度和高度。 例如 或者,MediaTracker向由异步加载的映像中添加A ,Toolkit然后等待其完全加载。