IE 和 Edge 上绘制图像时出现 IndexSizeError

2024-04-28

我发现某些代码在 Internet Explorer 和 Edge 中失败,但在 Chrome 和 Firefox 中似乎可以完美运行:

var image = document.getElementById("myImage");
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.drawImage(image, 1, 0, 499, 278, 0, 0, 749, 417);
img {
  width: 300px;
  height: 200px;
}
<img id="myImage" src="https://image.ibb.co/bsANfm/emptyphoto.png" />

<canvas id="myCanvas" width="600" height="400"></canvas>

由于某种原因,CanvasRenderingContext2D.drawImage() 调用在 IE 11 和 Edge 40.15063.674.0 中失败,我收到 IndexSizeError 异常。根据MDN https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage,只有当画布或源矩形的大小为 0 时,我才会收到此错误,但这里的情况并非如此。

任何人都可以阐明我是否在这里做错了什么,或者是否有一些解决方法可用?


我已经找到罪魁祸首了本质上,我一直要求浏览器绘制从 y=0 到 y=278 的图像部分,但图像只有 275px 高。 IE 和 Edge 似乎不喜欢这样并决定抛出错误。如果我将上面代码片段中的 278 更改为 275,它会起作用:

var image = document.getElementById("myImage");
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
context.drawImage(image, 1, 0, 499, 275, 0, 0, 749, 417);
img {
  width: 300px;
  height: 200px;
}
<img id="myImage" src="https://image.ibb.co/bsANfm/emptyphoto.png" />

<canvas id="myCanvas" width="600" height="400"></canvas>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE 和 Edge 上绘制图像时出现 IndexSizeError 的相关文章

  • 按 Enter 键提交消息?

    我正在开发一个基于本教程使用 Meteor 构建的聊天应用程序 http code tutsplus com tutorials real time messaging for meteor with meteor streams net
  • 根据屏幕尺寸更改图像 src

    我正在尝试使用媒体查询根据屏幕尺寸更改图像 src 我尝试过背景 url x 但它不起作用 我在某处读到我应该使用 content url x 代替 但是当我这样做时 我得到一个空白页面 谁能告诉我我的代码有什么问题吗 HTML div c
  • CONDITION CSS 区分 IE6 到 IE7

    我想声明一个不同于 ie6 和 ie7 的风格 但我的CSS条件被IE7识别为IE6 我用的是XP和explorer 7 这是我使用的代码
  • 当key未知时如何获取js对象中的属性值

    我有一个对象数组 a 81 25 p 81 25 81 26 p 81 26 我想循环遍历数组并获取值p在每个元素中 for var key in a console log a key outputs 81 25 Object How d
  • AngularJS 服务并承诺最佳实践

    我有一个 AngularJS 应用程序services 调用 http资源并返回promise我在控制器中解决了这个问题 这是我正在做的事情的示例 app service Blog function http q var deferred
  • 如何格式化折线图谷歌图表材料上的轴?

    我在格式化材料图表的轴时遇到问题 Using classic line chart if I would like to format my vertical axis with a dollar sign I would do vAxes
  • 从本地 html/javascript 网站插入 mySQL 数据库

    我正在尝试做什么 我的程序的目的是插入数据local HTML JS网站变成online 非本地 mySQL数据库 到目前为止我尝试过的 我试图用来实现此目的的原始方法是让我的本地网站使用 javascript 通过在线发布数据PHP文件
  • linkedin js 如何是有效的 javascript

    LinkedIn Javascript 集成是通过以下方式完成的 我不明白 这怎么是一个有效的javascript 为什么 api key 没有被引用 脚本标签的主体带有src永远不会被执行 但是 加载的脚本可以像访问任何其他元素的内容一样
  • React Native 中 fontAwesome 图标的圆形轮廓

    我想使用 fontAwesome 图标 使其位于圆圈的中间 我想将它用作一个图标项 我读到我们可以将它与圆形图标一起使用并将其放置在其中 但我无法使其工作 import IconFA from react native vector ico
  • Nodejs 异步 Promise 队列

    我需要使用速率受限的 API 例如 我一秒钟只能进行 10 个 API 调用 因此我需要等待当前秒结束才能进行另一个 API 调用 为了实现这一目标 我想创建一个可以自行管理的异步队列 它的主要功能是让我向队列添加一个新的 Promise
  • 复合组件和 CSS

    I have newcss css formdiv width 30 margin 150 auto 和复合组件
  • 使用mysql数据按高低价格排序

    这是我所拥有的以及我想做的 我的 MySql 数据库中有 12 个项目 4 个产品为 4 99 4 个产品为 3 99 4 个产品为 2 99 我意识到我可以像这样查询数据库 它会给我一个该价格的产品列表
  • axios 如何将 blob 与 arraybuffer 作为响应类型处理?

    我正在下载一个 zip 文件axios https www npmjs com package axios 为了进一步处理 我需要获取已下载的 原始 数据 据我所知 Javascript 有两种类型 Blob 和 Arraybuffers
  • Python 中的 Firebase 身份验证时出现 KeyError:“databaseURL”

    相信你做得很好 我是 firebase 的新手 正在尝试进行用户身份验证 我已经安装了pyrebase4并在firebase控制台上创建了一个项目 我还启用了使用 电子邮件和密码 登录并尝试连接我的应用程序 下面是我正在尝试的代码 impo
  • 分配函数后如何删除 onmouseout 事件?

    我有一个问题 我正在为 onmouseout 事件分配一个函数 但运行该事件后 我需要将其删除 将非常感谢您的帮助 这取决于你的代码 如果你用 d3 这样做 那么你可以说 在 onmouseout 事件函数中 element on mous
  • 反转比例函数

    这对我来说很有趣 看下面的D3代码 var scale d3 scale linear domain 100 500 range 10 350 scale 100 Returns 10 scale 300 Returns 180 scale
  • 单击 html 中的按钮后如何从 javascript 函数写入文件

    我正在尝试编写真正基本的代码 在 html 文件上按下按钮后 通过 JavaScript 函数在本地写入 txt 文件 这不可能吗 我可以仅使用 javascript 文件写入文件 但在尝试同时使用两者时则不能
  • 防止语言环境文件中的 HTML 字符实体被 Rails3 xss 保护破坏

    我们正在构建一个应用程序 这是我们第一个使用 Rails 3 的应用程序 并且我们必须从一开始就构建 I18n 作为完美主义者 我们希望在我们的视图中使用真正的排版 破折号 卷曲引号 省略号等 这意味着在我们的 locales xx yml
  • JS - 如何将图像对象变成灰度并显示它

    基本上 当单击按钮时 它会告诉移动设备转到相机 一旦相机拍照 它就会给我图像数据 它被称为数据 URL 吗 这是我处理它的代码 var imagesrc data image jpeg base64 imageData var myimag
  • 如何使用node.js获取屏幕分辨率

    我需要使用 node js 获取屏幕分辨率 但以下代码不起作用 var w screen width var h screen height 这也行不通 var w window screen width var h window scre

随机推荐

  • 使用“touch”创建目录? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 1 在 A 目录中 find type f gt a txt 2 在 B 目录中 cat a txt while read FILENAMES do
  • Android 中的 3D 立方体过渡 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想让一个屏幕 或屏幕的一部分 以类
  • 如何使用 document.getElementsByClassName() 访问

    span class mtb price span
  • 如何在 GNU Make 模式规则中包含路径前缀

    考虑以下 foo bar echo lt gt 假设我们有一个文件1 bar 执行的命令很简单echo 1 bar gt 1 foo 然而 当 包含一个路径 而不仅仅是一个文件名 它开始变得挑剔 我的问题是我想在前面添加另一条路径 bar
  • 如何从 Excel 发送电子邮件中的嵌入图像

    我想从 VB 发送电子邮件 Outlook 正文中的 Excel 图表 不是附件 有人知道该怎么做吗 Solved 只是为了在下面的回答中添加更多细节 您将需要以下内容 可以进行一些改进 Sheets 2 ChartObjects 1 Ch
  • 为 Microsoft SQL Server 创建统计信息时,列顺序重要吗?

    数据库引擎优化顾问建议为我们的几个查询创建一些统计信息 事实证明 其中一些是相同的 只是 CREATE STATISTICS 命令中的列顺序不同 例如 CREATE STATISTICS StatName1 ON dbo table1 co
  • Node.js multer 错误:意外的字段

    我在使用 Node js multer 时遇到了麻烦 我想知道是什么原因导致这个问题 我想我设置了正确的名称input name streamfile 客户端和node js的multer之间upload single streamfile
  • JSF 2.3 CDI 无法在 tomcat 上运行

    每当我使用 inject 时 我都会尝试在 tomcat 8 上设置 jsf 2 3 我一直遇到错误 我已经在 stackoverflow com 上进行了谷歌搜索和搜索 但我找不到解决方案 我已经按照这里的 BalusC 示例安装了 CD
  • 为什么我在elasticsearch中需要“store”:“yes”?

    我真的不明白为什么核心类型链接 http www elasticsearch org guide reference mapping core types 它在属性描述中说 例如 对于数字 store 设置为 yes 将实际字段存储在索引中
  • PHP 中是否存在不调用析构函数的情况?

    这是我第一次在 stackoverflow 上发帖 但这些帖子对我帮助很大 无论如何 关于我的问题 是否有 PHP 中的析构函数未被调用的情况 我问的原因是因为我有一个映射器类 它将数据映射到对象 在构造函数中 我启动一个事务 在析构函数中
  • 第一列未隐藏在 datagridview 中

    我有一个 datagridview 一旦我用数据源填充视图 我就会隐藏不需要的列 由于某种原因 第一列没有隐藏 我已经检查了列名称 它们匹配 并且第二行执行良好 隐藏了 EVENTID 的列 我什至做了一个 messagebox show
  • 如何从 Django 中的 POST 获取之前的 URL

    我有一个 Post 模型 在添加到数据库之前需要特定的类别 并且我希望自动生成该类别 单击 addPost 按钮会将您带到不同的页面 因此将通过上一页 URL 的一部分来确定类别 有没有办法以字符串形式获取上一页 URL 我在这里添加了 A
  • Google api - 如何获取表单中的文本?

    当我打电话时getContent 在表单文件上 它返回空 null 如何获取 Google Drive 中表单文件的文本内容 你是对的 你需要使用表格服务 https developers google com apps script re
  • 显示 python 的 XML 解析器加载大文件时的进度

    我使用 Python 内置的 XML 解析器来加载 1 5 gig XML 文件 这需要一整天的时间 from xml dom import minidom xmldoc minidom parse events xml 我需要知道如何进入
  • 按标签列出的 AWS Cloudfront 分配 ID

    是否可以通过 awscli 或适用于 powershell 的 aws sdk 按标签获取 aws cloudfront dist id 我只能通过资源的 ARN 编号获取 ID aws cloudfront list tags for r
  • 如何指示窗口过程中处理消息时出现的错误?

    我目前正在编写一个库来处理来自原始输入 API 的信息 并且我正在使用级联函数 这导致了几个非常小 非常可读且非常集中的函数 但是 它让我震惊 我不明白如何properly表明 Windows 出现故障 我有这个功能 OnInput Han
  • 当我在客户端创建选项时如何在服务器端获取下拉选定项值

    我的 JavaScript 代码 ready function ajax type POST url WebService asmx GetDistricts data contentType application json charse
  • vulkan 扩展:哪些由谁支持?

    有EXT KHR or AMD or NV扩展 也许还有其他一些 我知道NV means NvidiaAMD 不太可能支持 it nv 扩展 但是 khr 或 ext 又如何呢 他们是所有人都强制支持的吗 有一个website https
  • 使用流转换和过滤 Java Map

    我有一个 Java 地图 我想对其进行转换和过滤 作为一个简单的示例 假设我想将所有值转换为整数 然后删除奇数条目 Map
  • IE 和 Edge 上绘制图像时出现 IndexSizeError

    我发现某些代码在 Internet Explorer 和 Edge 中失败 但在 Chrome 和 Firefox 中似乎可以完美运行 var image document getElementById myImage var canvas