对于画布,.drawImage 函数抛出“TypeError:预期图像或画布”

2023-12-08

我正在尝试在我的不和谐机器人中添加排名卡,为了做到这一点,我正在尝试使用画布,但是当我使用画布时,一切正常,直到我点击.drawImage方法。它给我一个错误,提示“TypeError:需要图像或画布”。虽然我已经要求了canvas在全球范围内,与画布有关的其他所有内容也都可以正常工作。

我尝试过require('canvas')在函数内部,但这也不能解决问题。

const canvas = Canvas.createCanvas(934, 282);
const ctx = canvas.getContext('2d');
const background = Canvas.loadImage('./images/Rank_Card.jpg');

ctx.drawImage(background, 0, 0, canvas.width, canvas.height);  
const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');
msg.channel.send(`Testing...`, attachment);

当它发送消息时,它应该附加图像,但现在它只是给我以下错误。

Error:

C:\Users\Desktop\Discord\iBot\ibot.js:25
    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
        ^

TypeError: Image or Canvas expected

节点画布'loadImage()方法返回一个Promise这得到解决<Image>.

你不能直接传递这个 Promise,你必须await for it:

const canvas = Canvas.createCanvas(934, 282);
const ctx = canvas.getContext('2d');
// we need to await the Promise gets resolved since loading of Image is async
const background = await Canvas.loadImage('./images/Rank_Card.jpg');

ctx.drawImage(background, 0, 0, canvas.width, canvas.height);  
const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');
msg.channel.send(`Testing...`, attachment);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对于画布,.drawImage 函数抛出“TypeError:预期图像或画布” 的相关文章

  • 将 Regex 对象分配给 html 输入模式

    我需要以编程方式将正则表达式对象分配给输入元素模式属性 以下是我当前的实现 var regex d 5 element attr pattern regex toString slice 1 1 有没有更好的方法来做到这一点而不需要字符串操
  • 有没有办法动态更改 jqGrid 的单元格值?

    这个问题可能已经被问过很多次了 但我想知道是否可以动态更改 jqgrid 的单元格值 我基本上有一个网格 它通过 JSON 字符串加载数据 在特定列的某些行上 该值可能为 null 因此 预先知道哪个行 ID 是一个问题 然后能够将 nul
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • jQuery:查找具有特定自定义属性的元素

    我只想找到具有特定自定义属性值的元素 例如 我想找一个div其具有属性data divNumber 6 var number 6 var myDiv data divNumber number 我尝试使用http api jquery co
  • 判断字符串是否包含有效的javascript代码

    我正在寻找一个C 返回的函数true如果字符串包含有效的 JavaScript 语法 例如 IsValidJavascript alert hello 会回来true but IsValidJavascript alertXXhelloZ
  • 检测 Webkit/Chrome 中 HTML5 数字控件更改的事件?

    HTML5 为我们提供了一些新的输入元素 例如
  • 我可以在 GWT 中使用第三方 Javascript 库吗

    例如穆工具 用 js 编码对我来说很舒服 但显然不适合所有人 你当然可以 最好的事情就是给自己写一些好看的JavaScript 覆盖类型 http code google com webtoolkit doc latest DevGuide
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • EmberJS:对象作为查询参数来刷新模型

    我遵循了查询参数指南 http guides emberjs com v1 11 0 routing query params http guides emberjs com v1 11 0 routing query params 而且效
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • AngularJS + jQuery 移动

    是否还有其他可能性来设计AngularJS以移动友好的方式应用程序CSS 我正在计划一个移动应用程序 并希望使用 AngularJS 进行逻辑和数据绑定 但我不想自己设计所有内容CSS The AngularJSFAQ说它使用jQuery
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • Angular2:动态同步http请求

    Goal 发出一系列同步 http 请求并能够将它们作为一个可观察流进行订阅 示例 不工作 let query arr test1 test2 test3 function make request query arr if query a
  • 如何知道 .keyup() 是否是字符键(jQuery)

    如何知道 keyup 是否是字符键 jQuery input keyup function if key is a character such as a b A b c 5 3 2 etc not enter key or shift o
  • ES6 模块范围

    我有代码 lib js var a a export var b b main js console log a a variable is not available in a global scope import b from lib
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Vue - 调度完成后调用 store getter?

    我正在使用 Laravel 5 7 Vue2 Vuex 我在调度调用完成后让 Vue 返回存储值时遇到一些困难 我的申请流程如下 我单击一个提交按钮 该按钮调用组件上的 validate Validate 分派到我的 addLease 操作
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 如果 POST 响应仅包含 ID,如何将数据保存到我的 Ember 存储?

    Ember 数据期望我的服务器在每次成功后返回完整的对象POST 但是 我的 API 只返回一种元对象 其中包含id 当 Ember 收到此对象时 记录中的现有数据将被删除 除了id 例如 当我这样做时 var asset App Asse

随机推荐

  • 如何递归地“扩展”XML/XSD 中的所有内容?

    是否有任何应用程序可以使用带有某些包含的 XML 文件 实际上是 wsdl 作为输入 并递归地浏览这些包含以生成最终的 XML 确实很大 并将目标包含合并到其中 说明 BDS 2006 WSDL 导入程序无法处理包含内容 并且导入的 xsd
  • 接受 POST 请求的 Node.js 服务器

    我正在尝试允许 javascript 与 Node js 服务器进行通信 POST 请求 网络浏览器 var http new XMLHttpRequest var params text stuff http open POST http
  • 空手道启动功能

    需要在所有测试用例执行之前执行 健康检查 测试 功能 这就像执行一堆测试用例之前的初步测试 如果任何预检查失败 则需要退出平台的解决方案 执行您的健康检查功能karate config js using karate call karate
  • 如何使用正则表达式删除末尾可能存在或不存在的模式

    我想在不包含字符串末尾可能存在或不存在的特定模式 括号中的任何内容 的情况下进行捕获 我想捕获以下 3 个示例中除字符串 排除 之外的所有内容 aaaaaa bbbbbb exclude cccccc 我尝试了以下正则表达式 0 1 您可以
  • 将Google结果对象(纯js)转换为Python对象

    所以我尝试使用 Google Map suggest API 来请求地名建议 不幸的是我找不到这方面的文档 下面是一个 URI 示例 返回 suggestion query London 我想在 python 2 5 中使用它 现在 在正确
  • 如何在angularjs中设置范围滑块中的时间?

    我正在使用具有可拖动范围的滑块 https jsfiddle net ValentinH 954eve2L 在 Angular js 中用于时间选择 我想在这个滑块中设置时间 所以我的时钟是从 00 00 到 24 00 但我想设置时间间隔
  • 如何在 Objective C iPhone 编码中播放声音

    我正在开发一个应用程序 它使用一些硬件传感器在屏幕上提供数据 有一个标签随数字更新 我希望每当数字超过 100 或其他值时就播放声音 例如 假设它正在读取数字 然后突然它找到了一个好位置 或其他什么 然后我想要播放声音或点亮灯光 我是一个绝
  • 通过Java找出系统RAM

    我正在编写一个程序 需要在其中进行最小系统 RAM 验证 我如何计算在 JVM 中执行代码的机器的 RAM 我认为纯java根本不可能 在 JVM 中 您只能测量 JVM ram 而不能测量系统 RAM http docs oracle c
  • 在网格上编写随机路径从哪里开始比较合适?

    我不知道从哪里开始 我不是要求别人为我做这件事 但我不知道如何做 所以如果有人能指出我正确的方向 那就太好了 我无法使用谷歌找到任何东西 这就是我需要的 我需要创建一条从网格一侧到另一侧的路径 但不是以随机方式最短 我需要确保如果路径与路径
  • 如何在 Kivy/Python 中从一个屏幕引用另一个屏幕中的 TextInput?

    我正在尝试制作一个可以计算圆锥体积的应用程序 到目前为止 我有一个名为 ConeVolumeScreen 的屏幕 其中有两个 TextInput 小部件
  • MySQL'user_id'在where子句中不明确的问题

    我怎样才能纠正我从下面的代码中不断遇到的问题 其中指出 user id in where clause is ambiguous 我在这里先向您的帮助表示感谢 这是mysql表 SELECT user user info FROM user
  • 正则表达式不是运算符

    正则表达式中是否有 NOT 运算符 就像那个字符串一样 2001 asdf dasd1123 asd 21 01 2011 zqge dzqge name 20019 我想删除所有 0 9a zA z 但不是一年的那个 2001 所以正则表
  • 将文件关联从 Visual Studio 2005 移至 2008

    我的电脑上安装了 Visual Studio 2005 和 Visual Studio 2008 但是当我从资源管理器中打开 aspx 或 master 文件时 它会在 2005 年打开 我希望它们在 2008 年打开 我可以手动更改文件关
  • 具有两个 data.table 的类似合并的场景

    我有两个数据框 实际上是 data tables set seed 123 dt1 lt data table P rep letters 1 3 c 4 2 3 X sample 9 dt1 P X 1 a 3 2 a 7 3 a 9 4
  • Python:如何了解串口设备事件,例如键盘事件

    你好 我是 python 新手 我能够连接到串行端口设备并想知道设备中发生的任何更改 如果按下设备中的任何按钮 我想捕获事件 我该怎么做 在Python中的pyHook的帮助下 我可以通过调用函数 OnKeyboardEvent 和 OnM
  • 模拟(起订量)或覆盖密封类中的只读属性?

    我遇到的情况是 在 MS Dynamics Crm 中 它使用密封类和只读属性返回一些对象 我只能假设使用内部构造函数或内部属性集 这些家伙并没有继承我可以使用的接口 显然 如果我可以控制这段代码 我就会有更多的控制权 但因为它位于底层的
  • 为什么 sizeof...(T) 这么慢?实现不带 sizeof...(T) 的 C++14 make_index_sequence

    我找到了 C 14 make index sequence 算法 的实现 template lt int gt struct index sequence using type index sequence template lt type
  • 如何将字典列表拆分为多个保持相同索引的列?

    我有一个数据框 它有一个时间戳作为索引 还有一个包含字典列表的列 index var A 2019 08 21 09 05 49 Date1 Aug 21 2017 9 09 51 AM Date2 Aug 21 2017 9 09 54
  • 如何在 umbraco 6 的管理面板中创建自定义部分?

    我希望在 umbraco 6 的管理面板中开发一个自定义用户部分 此部分可以管理用户详细信息以及管理员批准 有人知道如何实现这一点吗 显然它类似于在 Umbraco 4 中这样做 但在 Umbraco 6 中 不是对umbracoApp表
  • 对于画布,.drawImage 函数抛出“TypeError:预期图像或画布”

    我正在尝试在我的不和谐机器人中添加排名卡 为了做到这一点 我正在尝试使用画布 但是当我使用画布时 一切正常 直到我点击 drawImage方法 它给我一个错误 提示 TypeError 需要图像或画布 虽然我已经要求了canvas在全球范围