javascript - 如何使用 KonvaJS 访问 JS 中的图像属性

标签 javascript konvajs

我正在 JS 中上传和加载图像。
因此,当我使用 console.log(anImage) 时,我会得到如下所示的元素。

  draggable: (...)
> elm: text
> image: img
    complete: (...)
    contentEditable: (...)
    crossOrigin: (...)
    currentSrc: (...)
    dataset: (...)
    decoding: (...)
    dir: (...)
    draggable: (...)
    firstChild: (...)
    firstElementChild: (...)
    height: 600
    isRootInsert: false
  name: 'pear'

console.log(anImage.name) // 'pear'

但我的目标是我想获得图像属性的高度。
因此,当我输入“anImage.image”时,它只是给出图像的路径,而不是图像的属性。如何访问图像属性来获取高度?非常感谢您的阅读。

最佳答案

可以使用 Javascript 加载图像并检查尺寸。但请注意,加载图像的过程是异步的,这意味着您的 JS 代码可以在从服务器访问图像并通过网络拉到运行 JS 的客户端之前执行。这意味着您必须等待或“监听”直到加载完成事件在图像对象上触发,然后才能查看其尺寸。

在纯 JavaScript 中,您可以使用一个简单的过程,如下所示:

    var img = new Image();
    img.onload = function() {
      alert(this.width + 'x' + this.height);
    }
    img.src = 'http://www.google.com/intl/en_ALL/images/logo.gif';

这里的技巧是设置 img.onload 监听器,以便当图像“到达”执行 JS 代码的客户端时,为您执行它声明的函数。

当您在 Konva 中使用图像时,您必须遵循相同的模式。 Konvajs 文档有 simple example of image loading using onload()

对于新手来说,误解使用服务器源资源的异步性质是一个非常常见的问题。

关于javascript - 如何使用 KonvaJS 访问 JS 中的图像属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57833781/

相关文章:

javascript - 数据表 aodata.push 将数组转换为逗号分隔列表

javascript - 使用 Html 和 Javascript 在浏览器中导出图像

javascript - 如何在传奇中使用警报,暂停它,并且仅在按下按钮时才继续?

javascript - 上传文件时使用 JavaScript 确定文件类型

javascript - 高质量 Canvas 绘制图像 - Javascript

javascript - firebase云使用 "key"参数写入数据

javascript - 如何在 Vue Konva 中使用 Sprite 对象/动画?

javascript - 调整 Canvas 大小以适应容器

javascript - 使用 React 和 Konva 的响应式 Canvas

javascript - JavaScript 中的 2D/3D CAD 设计