HTML5 画布:调整图像大小

2024-01-03

我正在尝试将图像放置在画布上而不调整其大小。我认为 drawImage(img, x, y) 可以解决问题,但它会拉伸图像以填充画布。 另外,向 drawImage(img, x, y, width, height) 提供图像的尺寸似乎不起作用。

这是我的代码:

<canvas id="story" style="position:relative; width:800px; height:600px;"></canvas>

<script type="text/javascript">

window.onload = function() {
  var canvas = document.getElementById("story");
  var context = canvas.getContext("2d");
  var img = document.getElementById("img1");
  var width = parseInt(img.width);
  var height = parseInt(img.height);
  context.drawImage(img, 0, 0, width, height);
}

</script>
<img id="img1" alt="" src="http://link to image"/>

提前致谢!

PS:我添加了 parseInt 以确保 drawImage 获得有效值。


不要使用 CSS 来调整画布大小。这将创建一个默认大小的画布并拉伸它。直接在其上设置画布尺寸,您将获得 1 比 1 像素的绘图空间。

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

HTML5 画布:调整图像大小 的相关文章

  • 使用 HTML5 启用后置摄像头

    我正在开发一个使用 MVC ASP Net 4 HTML5 的项目 默认浏览器是 google chrome v29 0 1547 57 我可以与这些工具交互并拍照 但只能使用前置摄像头 如何启用后置摄像头 平板电脑的特点 三星 Galax
  • 使应用程序背景适合不同设备的最佳方法

    因此 我希望通过一些漂亮的背景图像等来为我的应用程序增添一点趣味 但我很好奇的是如何确保不同的机器人正确渲染 我将在文本后面设置背景 并且我需要确保它们对于每个不同的屏幕尺寸和分辨率具有相同的尺寸和位置 有这方面好的教程吗 Thanks E
  • 由于请求的资源上不存在“Access-Control-Allow-Origin”标头,无法获取与 Axios 的链接请求

    我正在尝试使用 cryptocompare api 来获取 axios 的 coindata 列表 但我不知道如何解决这个问题 我相信这是一个 CORS 问题 但我不确定 完整错误如下 加载失败https www cryptocompare
  • 打字稿 keyof 返回字符串数组

    假设我有一堂课 class Test propA propB propC 我想创建一个返回字符串数组的方法 并将其键入为仅 Test 类中存在的键 我该如何使用keyof特征 class Test propA propB propC get
  • 可以用背景颜色填充表格单元格吗?

    我有一个表格单元格未完全填充文本 因此背景颜色不会覆盖整个单元格 我仍然希望整个表格单元格填充相同的颜色 而不在整个表格上使用背景颜色 那么是否可以用一种颜色填充整个单元格而不在整个表格上使用背景颜色呢 您可以将一个类分配给 td 元素 然
  • 如何创建自定义输入类型?

    例如 我想创建一个类似于 AngularJS 实现 电子邮件 的方式的自定义输入类型
  • CSS 样式的段落,带有段落编号和旁注

    我想在网上发布一段带有段落编号和旁注的文本 我正在使用 哈克贝利 费恩历险记 作为测试 参见http jsfiddle net 29Mdt http jsfiddle net 29Mdt 我希望将段落编号放在左侧边距中 将旁注放在右侧边距中
  • 使用 forEach 循环 Array(n),未定义值的数组[重复]

    这个问题在这里已经有答案了 我想快速构建一个数组n使用数组构造函数的长度Array 然后循环得到的数组 Per MDN 的文档 https developer mozilla org en US docs Web JavaScript Re
  • 从 Angular 4 中的 html 中删除主机组件标签

    我有一个表 我想在其中显示一个表行 它是一个组件 我还想将数据传递给该组件 table th td col 1 td td col 2 td td col 3 td th tr tr table
  • 如何在上传图像文件时禁用捕获(在ipad上使用safari)

    我想在 ipad 上使用 safari 上传图像 这是我的 html 代码
  • 从数组中提取值并将其转换为字符串的最佳方法是什么(允许 ES6)?

    我正在尝试采用这样的数组 location Id 000 000 Name Foo Id 000 001 Name Bar etc 提取 Id 并将它们组合成单个字符串 同时在每个值前面附加一个静态字符串 myId 的最有效 最干净的方法是
  • QUnit 不会运行测试

    我刚刚开始使用 QUnit 并遇到问题 我目前正在使用 TypeScript 它是一个 JavaScript 编译器 我在与我的主要课程结构平行的课程中进行测试 在每个类中 我都有一个名为 runTests 的函数 为了执行这些测试 我循环
  • 使文本“bbb”位于图标旁边,而不是压在一起

    Goal 使字母 bbb 可见 并且文本应位于图标旁边 Problem 我尝试将文本移到右侧 但不起作用 你们知道该怎么做吗 JSfiddle https jsfiddle net 5f7qjLgf 1 Thanks result filt
  • Safari 10.0.1 未从 srcset 选择正确的图像

    Safari 无法正确处理我网站上某些图像的 srcset 并且完全忽略我在尺寸属性中设置的规则 如果您单击下面的链接并在 Safari 中查看它 您将看到顶部的图像以其原始尺寸显示 而不是我生成的尺寸 但是 在页面底部它有效吗 并已下载为
  • 如何更改 Dojo TabContainer 行为以仅打开外部链接而不是显示 ContentPane?

    我正在与一个TabContainer有几个不同的ContentPane孩子们 他们每个人都配备了href用于获取选择选项卡时显示的外部 AJAX 内容的参数 dojo addOnLoad function var tc nav new di
  • 如何将 Jitsi Meet 添加到 Vuejs

    我已在 public html 的正文中加载了 jitsi meet 脚本 并且我有一个组件 如下所示
  • javascript中的快捷方式融合优化

    我听说 lodash 和其他 javascript 库使用一种称为 快捷融合 的技术进行优化 但在任何地方都找不到该技术的详细解释 任何人都可以提供链接或举例解释 快捷方式融合 的含义吗 对于一个非常简短且不清楚的解释 https wiki
  • 如何识别 YouTube 播放器的音量变化

    我正在使用 angualr youtube embed 指令将 YouTube 播放器嵌入到我的 Angular Web 应用程序中 因为我必须识别播放和暂停以及音量变化事件 为了监听播放和暂停事件 我使用下面给出的代码 scope on
  • Javascript:为什么我需要在 for 循环中声明 var i = 0?

    我正在做一个需要递归的问题 用于计算加起来达到一定数量的硬币组合 有效的解决方案如下 困扰我几个小时的一件事是 当我没有在 for 循环中声明 var i 0 时 它不起作用 据我了解 当我在 for 循环中声明 var 时 它会保留在该范
  • Angular:DOM更新后调用方法

    我正在从 html 调用一个方法 调用休息服务 来增加 减少屏幕上的计数 现在我想调用另一个方法 即 getThreshold 来检查计数是否达到阈值 如果是 我想显示一条确认消息 我想首先更新屏幕上的计数 然后调用该函数来检查它是否达到阈

随机推荐

  • 如何在 python 2 tkinter 中显示当前任务运行的状态并更新进度条而不同时冻结?

    我的代码显示一个按钮 当按钮被按下时 出现一个文件对话框要求用户选择一个文件 在消息框之后 这里没问题 当我想更新进度条时出现问题 并显示当前正在执行的任务的状态 GUI 冻结 进度条和任务状态仅在工作完成后更新 或者 如果有人能给我一个功
  • 如何在调用函数之前推断 auto?

    在尝试时函数返回类型推导 http en wikipedia org wiki C 2B 2B14 Function return type deduction auto func int main func auto func retur
  • 无法解决:support-core-ui

    这就是我的项目存储库的全部内容 repositories jcenter google maven url https maven google com 这就是我项目的依赖项 dependencies compile com google
  • 如何将 REGEX 匹配添加到我的 J2ME 项目?

    这个问题几乎概括了这一点 只想对 J2ME 中的字符串运行正则表达式匹配 JRegex 不会在 CLDC 设备上运行 试试这个 code google com p regexp me http code google com p regex
  • python 2.7中对数对数尺度的最佳拟合线

    这是以对数刻度表示的网络 IP 频率排名图 完成这部分后 我尝试使用以下方法在对数刻度上绘制最佳拟合线Python 2 7 我必须使用 matplotlib 的 symlog 轴刻度 否则某些值无法正确显示 并且某些值会被隐藏 我正在绘制的
  • 将自定义对象从 C# 传递到 Powershell

    我有一个 C 类 应该通过向其传递 Log 对象来执行 Powershell 脚本 日志完全用 C 编写 应该在 C 代码和 Powershell 之间共享 以实现通用日志记录 有人可以告诉我如何将自定义对象从 C 传递到 Powershe
  • iOS4 MPMoviePlayerController 嵌入

    我当前正在使用 MPMoviePlayerController 在 iPhone 内播放视频 现在我希望在视图的一小部分区域 而不是全屏 播放该视频 我认为有一个框架方法可以做到这一点 但我在某处找不到所需的教程 你有遇到过吗 那太好了 U
  • 在 Slack 中创建并获取新通道传入 Webhook

    我刚刚使用channels create 方法通过Slack Api 创建了一个通道 如何添加传入的 Webhook 并以编程方式获取 URL 我还有其他工具可以进一步使用它 您无法以编程方式创建新的传入 Webhook 但您也不必这样做
  • gcc 中模板的非延迟静态成员初始化?

    gcc 对静态成员初始化时序有任何保证 特别是对于模板类吗 我想知道我是否可以获得静态成员的硬保证 PWrap T
  • 如何在 .NET 中使用 Saxon-HE 9.8 使用 XSLT 3.0

    我使用的是 Win7 并将 VSCODE 项目设置为 NET Framework 4 然后下载 SaxonHE9 8 0 7N setup exe 并安装 然后将 saxon9he api dll 引用到 C 项目并using Saxon
  • 为什么扩展切片不会反转列表?

    我正在 python 中切片列表 无法解释一些结果 以下两项对我来说似乎很自然 gt gt gt 0 1 2 3 4 5 1 4 1 1 2 3 gt gt gt 0 1 2 3 4 5 1 5 4 3 2 1 0 然而 gt gt gt
  • 数学解释为什么 Decimal 到 Double 的转换被破坏以及 Decimal.GetHashCode 分隔相等的实例

    我不确定这种表述 Stack Overflow 问题的非标准方式是好是坏 但这里是 代码的最佳 数学或其他技术 解释是什么 static void Main decimal arr 42m 42 0m 42 00m 42 000m 42 0
  • git svn status - 显示未提交到 svn 的更改

    我正在 git svn 中寻找一个命令 该命令将显示我已提交到 git 存储库但尚未提交到中央 svn 存储库的更改 我正在寻找像 svn status 一样工作的东西 但我正在使用 git svn 不幸的是 git svn status不
  • 如何使用 FastAPI 获取 Jinja2 模板中更新的项目列表?

    我正在我的博客上构建一个评论系统 并且我正在呈现这样的现有评论 for comment in comments div class pt 4 div class bg white rounded lg p 3 flex flex col j
  • LARAVEL - 显示存储文件夹中的图像

    我是 Laravel 新手 想知道是否有人可以帮助我完成简单的图像上传 我有一个表单 允许用户创建个人资料并在此过程中上传其个人资料和头像 这一切都很完美 这是我的控制器的代码 if request gt hasFile avatar fi
  • 与任何内容都不匹配的 Glob 会扩展到自身,而不是什么都没有

    我想迭代特殊类型文件夹中的文件 例如 test 所以我写了一些脚本名称for loop for f in test do echo This is f f done After chmod x for loop 我可以开始它 for loo
  • 重新索引不填充 NaN

    我有一个系列 index pd MultiIndex from tuples bar one bar two baz one baz two foo one foo two qux one qux two names first secon
  • 如何使用 DDay.iCal 在 iCal Feed 中设置时区?

    我正在使用创建 iCal feedDDay iCal http www ddaysoftware com Pages Projects DDay iCal 它有效 但我不知道如何设置提要的时区 这是基本代码 iCalendar iCal n
  • FMDB 和加密

    我正在使用 FMDB 来处理 sqlite 并且我希望避免对 SQLCipher 的依赖 如何简单地利用 iOS 内置的 DataProtection 功能 这可能吗 唯一的要求是在手机被盗时保护数据 如果手机使用 PIN 码解锁 则用户可
  • HTML5 画布:调整图像大小

    我正在尝试将图像放置在画布上而不调整其大小 我认为 drawImage img x y 可以解决问题 但它会拉伸图像以填充画布 另外 向 drawImage img x y width height 提供图像的尺寸似乎不起作用 这是我的代码