当前位置: 首页 > 知识库问答 >
问题:

data: Image/jpeg; bas64如何以像素为单位获得其宽度和高度

慕胡媚
2023-03-14

你如何得到它的src在数据中的像素图像的宽度和高度:图像/jpeg; bas64?

未成功使用设置img。src调用它,然后调用width()。

var img = jQuery("<img src="+oFREvent.target.result+">");
img.width() // = 0

共有2个答案

乐正浩言
2023-03-14

您必须等待图像被加载(或完成,如果缓存)。这将导致异步回调操作:

// pure JS:

var img = new Image();
img.src = myDataString;
if (img.complete) { // was cached
    alert('img-width: '+img.width);
}
else { // wait for decoding
    img.onload = function() {
       alert('img-width: '+img.width);
    }
}

注意:我曾经在使用jQuery的项目中遇到过同样的问题。jQuery在创建图像后不能直接提供对图像的访问。看来,这是不可能做到的,但在纯粹的JS。但是您可以尝试一个超时循环,等待img宽度有一个值(并捕获任何加载/解码错误)。

[编辑,另请参见注释]为什么这样做(为什么没有竞争条件):

JS是单线程的,这意味着在给定时间只执行一部分代码。任何事件都将排队,直到当前作用域退出,并且只有在退出时才会触发。由于后期绑定,所有侦听器只有在那时(在执行当前作用域之后)才会被评估。因此,不管侦听器是在设置src属性之前还是之后设置的,只要启动onload事件,处理程序就会出现并侦听。与此相反,一旦设置了src属性,就会设置complete标志。

高运诚
2023-03-14

这将有助于:

var img = new Image();
img.onload = function() {
    alert(this.width);
}
img.src = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAA.......";

不停摆弄

我通过在这里转换图像来确保base64是有效的,并且onload函数应该在设置图像源之前出现。

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

  • 问题内容: 如何为宽度创建CSS规则 默认使用100%宽度 如果100%的宽度超过了某个像素的宽度(例如512像素),则该宽度将被限制为该像素的宽度 我不确定宽度和最大宽度关系,也不知道如何支持calc()或可以表达这一点。这需要与最新的WebKit浏览器和Firefox 4配合使用。不需要IE8等支持。 问题答案: 这实际上是的预期用途。如果元素的计算值(实际值)超过,它将被限制为最大值,而不是

  • 如何在Java中计算的宽度(以像素为单位)?例如,我有一个字符串说“你好世界!它的长度是多少(以像素为单位),还要考虑它的字体系列和大小?

  • 问题内容: 因此,我的身高为iPhone 6s所期望的返回736。如何将此值转换为米,以与PhysicalWorld单位制保持一致? 问题答案: 一米大约是135点。 在9.8m / s的重力作用下从静止中坠落的PhysicalBody在1.00806862953687s(1.01s)中移动了660点,速度为1342.8162841796875m / s(1342.82)。 将数学计算到小数点后两

  • 如何在jQuery中获取图像的高度和宽度,如果我使用img与类"img响应",并且没有给出任何高度,宽度,最大高度,最大宽度等。 我不希望图像的真实高度和宽度,我们可以从getHeight和getWidth获得,但我想要确切的高度和宽度,我可以在移动浏览器中看到,我看到小高度和宽度,在台式机或笔记本电脑中看到更大的高度和宽度宽度。 这是桌面视图 这是移动视图 我想知道我的屏幕有多少像素被那个图像覆

  • 问题内容: 我想在 android中 以像素为单位计算字符串字体宽度。我有字符串数组,我将所有这些数组元素附加到一个字符串中。所以我必须在两个连续的数组元素之间设置固定的间距。我将最后一个字符串放入textview中。最后,我将这个textview添加到tablerow中。简而言之,我想查看带有标题和值的表结构。我在这里看到过很多帖子,但没有得到解决方案。 提前致谢…!!! 问题答案: 似乎上有可