HTML5 中的画布宽度和高度

2023-12-12

是否可以固定 HTML5 的宽度和高度canvas元素?

通常的方法如下:

<canvas id="canvas" width="300" height="300"></canvas>

The canvasDOM 元素有.height and .width对应的属性height="…" and width="…"属性。在 JavaScript 代码中将它们设置为数值以调整画布大小。例如:

var canvas = document.getElementsByTagName('canvas')[0];
canvas.width  = 800;
canvas.height = 600;

请注意,这会清除画布,但您应该遵循ctx.clearRect( 0, 0, ctx.canvas.width, ctx.canvas.height);处理那些没有完全清除画布的浏览器。尺寸更改后,您需要重新绘制想要显示的任何内容。

进一步注意,高度和宽度是用于绘图的逻辑画布尺寸,并且是不同的来自style.height and style.widthCSS 属性。如果不设置 CSS 属性,则将使用画布的固有尺寸作为其显示尺寸;如果您设置了 CSS 属性,并且它们与画布尺寸不同,您的内容将在浏览器中缩放。例如:

// Make a canvas that has a blurry pixelated zoom-in
// with each canvas pixel drawn showing as roughly 2x2 on screen
canvas.width  = 400;
canvas.height = 300; 
canvas.style.width  = '800px';
canvas.style.height = '600px';

See 这个活生生的例子放大 4 倍的画布。

var c = document.getElementsByTagName('canvas')[0];
var ctx = c.getContext('2d');
ctx.lineWidth   = 1;
ctx.strokeStyle = '#f00';
ctx.fillStyle   = '#eff';

ctx.fillRect(  10.5, 10.5, 20, 20 );
ctx.strokeRect( 10.5, 10.5, 20, 20 );
ctx.fillRect(   40, 10.5, 20, 20 );
ctx.strokeRect( 40, 10.5, 20, 20 );
ctx.fillRect(   70, 10, 20, 20 );
ctx.strokeRect( 70, 10, 20, 20 );

ctx.strokeStyle = '#fff';
ctx.strokeRect( 10.5, 10.5, 20, 20 );
ctx.strokeRect( 40, 10.5, 20, 20 );
ctx.strokeRect( 70, 10, 20, 20 );
body { background:#eee; margin:1em; text-align:center }
canvas { background:#fff; border:1px solid #ccc; width:400px; height:160px }
<canvas width="100" height="40"></canvas>
<p>Showing that re-drawing the same antialiased lines does not obliterate old antialiased lines.</p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 中的画布宽度和高度 的相关文章

  • Internet Explorer 10,最大 div 大小为 1.533.917 像素

    我需要制作一个非常大的 div 以百万像素为单位 搜索我发现这个线程证明 IE 可以管理最多 10 000 000 px 确定最大可能的 DIV 高度 https stackoverflow com questions 7719273 de
  • 电子邮件通讯未正确呈现

    我是 CSS 和 HTML 新手 我有一个包含 HTML 和 CSS 代码的电子邮件模板 我在新闻通讯模板的右上角放置了一个粉色圆圈框 http www pedersenshotell se newsletter http www pede
  • 是否可以使 Font Awesome 图标大于“fa-5x”?

    我正在使用这个 HTML 代码 div class col lg 4 div class panel div class panel heading div class row div class col xs 3 i class fa f
  • Origin 无权使用地理定位服务 - 即使通过 HTTPS

    我有一个通过 HTTPS 使用 HTML5 地理定位的网页 它在桌面浏览器上运行良好 然而 在 iOS Safari 上 我收到错误 Origin 无权使用地理定位服务 我已确保页面上的所有内容都通过 HTTPS 加载 每个图像 每个脚本和
  • 从 Google Chrome 打印时的页码

    我看过这个答案 page bottom left content counter page counter pages 很多次 但它从来没有为我输出任何内容到页面 即使它应该工作 我尝试过 创造性 的方法来在底部获取页码 但我永远无法让它可
  • 如何在 Jupyter 笔记本单元中制作一个大图形,在输出到 html 时可滚动

    如您所知 当您在 Jupyter Notebook 单元格中打印大型表格时 无论表格是在 Notebook 环境中打印还是保存到 html 文件中 当表格太大时 都会自动使其可水平或垂直滚动 但对于图形来说 当它太大时 它会像大表格一样可滚
  • 禁用右键单击嵌入元素内的 pdf

    我有一个embed我在其中提供路径的元素pdf文件 我想阻止它被下载 但是当我右键单击该 t 时 我会看到保存和打印 pdf 的选项 我想阻止这些选项 I tried 但它禁用除 PDF 之外的整个页面上的右键单击 一种不受 CORS 或
  • 将元素 ID 传递给 Javascript 函数

    我看到了很多与我的问题标题相关的帖子 这是 HTML 代码
  • 具有宽度/高度的 SVG 在 IE9/10/11 上无法缩放

    IE 9 10 11 存在一个已知问题 如果您有一个 SVG 文件
  • angularjs 自定义过滤器检查数据数组内的值

    我有两个过滤器 它们根据数据中的队列键过滤数据 这是我的代码 var app angular module app app controller mainController function scope Data object scope
  • 图像之间的垂直间距

    我将一张图像剪切为三张相同的图像 现在我将其放入 html 代码中 如下所示 img src images disclosure2 01 jpg alt Disclosure img src images disclosure2 02 gi
  • 从 Angular 6 服务中绑定图像

    我有一个端点 它根据某些参数为我提供图像 这不是一个图像网址 而是一个普通图像 因此 当我到达邮递员中的端点时 作为响应 我收到一张图像 JPG 我是否可以在变量中接收该图像并将其绑定到 HTML 标签中 所有问题都有将图像 url 映射到
  • 画布图像遮罩/重叠

    在我的项目中 我必须使用画布在另一个相同尺寸和图案图像上实现一个不同的颜色图像 并且图像不是圆形或矩形形状 所有这些都是波浪形状的 它将应用于单个主背景图像 以便在每个主背景图像上显示多个图形onclick功能 重叠的图像应更改为另一种选定
  • C# html-helper 扩展现有方法而不覆盖?

    我已经搜索过这个问题并发现可能answer https stackoverflow com questions 11232041 how to create an html helper to extend textboxfor to ad
  • html输入数字,min + step,使step忽略min?

    是否有可能使step忽略min属性
  • JQuery Mobile - 内联显示 HTML 表单

    Goal 在 Jquery Mobile 中的同一行显示文本框和提交按钮 Problem 它们不会显示在同一行 我曾多次尝试在同一行显示文本框和提交按钮 但它从未起作用 这是我的代码和我使用的组合
  • jQuery 显示/隐藏兄弟姐妹

    我有这段代码 旨在首先隐藏除第一个元素之外的所有相关元素 这个 做的不错啊接下来 它应该根据选择的项目显示 隐藏这些元素 但这部分不起作用 想法 jQuery accordion dl not first child hide hide a
  • Javascript 替换为正则表达式无法正常工作

    我正在尝试使用正则表达式验证名称 正则表达式阻止用户连续输入 2 个空格或点 这是我的代码 function test input var regex A Za z 0 1 s 0 1 input value input value rep
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • Azure SQL 使用 PowerShell 和 ServicePrincipal 为 AD 用户授予访问权限

    我尝试为 Azure SQL Server 创建用户 我想使用 AzureAD 用户 这是代码 accessToken az account get access token resource https database windows
  • 我需要使用 VBA 将数据从 Excel 导入到 SQL Server

    我正在尝试将数据从我的 PC 上的另一个 Excel 工作簿导入到 SQL Server 我尝试使用这段代码 但它不起作用 Sub insertion Dim conn As ADODB Connection Dim rs As ADODB
  • 以二进制形式设置权限

    我在学校看到一个使用二进制字符串设置权限的系统 假设 101001 41 So 1可以是第1页的权限 2 可以是第2页的权限 4 可以是第3页的权限 8可以是第4页的权限 16可以是第5页的权限 32可以是第6页的权限 假设我得到了上面的二
  • 阿卡。安卓。 NoSuchMethodException:

    当我在 Android 上运行使用 Akka 的应用程序时 我收到以下异常 04 29 16 13 06 235 E AndroidRuntime 8968 java lang RuntimeException Unable to star
  • 仅从字符串中提取数字

    据说我有一个包含以下内容的字符串 hello 14 12 现在我只想提取数字 并在两个变量中有两个单独的值 如下所示 first num值应该是int 即first num 14 第二个变量应该存储冒号后面的数字 即 Second num
  • 如何在 Swift 中制作可设计的 UIImage

    我是初学者 我想制作一个 swift 文件 其中包含制作可设计 UIImage 的代码 因此我不会通过编码来编辑 UI 元素显示 只需在界面构建器中将此 swift 文件分配给 UI 类即可 我可以在 UIButton 中做类似的事情 例如
  • 每个key必须是一个数字字符串;得到未定义的量角器

    我正在尝试从 json 文件读取数据 但遇到了一些问题 如何将 json 文件中的项目获取到单个项目 我的 json 文件 UserName email protected Password tests123 我的方法 element by
  • 无法从 http 端点消费

    下面给出了我的路线 我正在尝试使用 HTTP 组件交换数据 URI 包含提交数据并获取响应应该获取数据 但它不起作用
  • 如何减去年份?

    我在 R 中有一个约会 例如 dt as Date 2010 03 17 我想从此日期减去 2 年 而不用担心闰年和此类问题 得到as Date 2008 03 17 我该怎么做呢 With lubridate library lubrid
  • 如何使用 Notepad++ Compare 作为 git bash/命令行中的 diff 工具?

    有什么方法可以更改 gitbash 中的默认 diff 工具吗 这篇文章似乎表明这是可能的 但他们没有提供命令行示例 关联 从命令行运行 NotePad 并使用比较插件显示比较结果 由于 Notepad 的官方 diff 插件似乎是uph0
  • Drools 6.4 KieScanner:如何在 Maven 中创建和添加带有规则的 Jar?

    我是 Drools 和 Maven 的初学者 我面临着使用 KieScanner 加载规则的问题 该项目的目标是能够在永久 KieSession 中动态加载规则 我想知道是否可以使用 KieFileSystem 管理规则 不确定是否可以在不
  • 如何解决Odoo中不存在列res_partner.

    例如 reonp 很好地添加到了模型中 但是当我尝试添加 gradjanin 时 Odoo 10 会引发错误 我试图重新启动服务器 py class komPartnerrReon models Model inherit res part
  • 使用带有像素后备的 rems

    我正在研究移动优先框架 该项目有广泛的需求 需要满足不同地点的大量浏览器和设备 我的主要目标地点之一是印度 那里的浏览器和设备使用趋势与英国或美 国有很大不同 印度浏览器使用情况http gs statcounter com all bro
  • 如果使用autowidth:true,如何删除免费的jqgrid自己的水平滚动条

    使用以下设置将免费 jqgrid 宽度设置为至少占据整个窗口宽度jqGrid 和自动宽度选项 它是如何工作的 answer autowidth true shrinkToFit false 使用以下答案中的样式使顶级工具栏图标变得更大 如果
  • Django 继承和永久链接

    我正在 django 中创建一个简单的 CMS 其中包含多个 模块 每个模块都是一个 django 应用程序 我设置了以下模型 class FooObject models Model id models SlugField primary
  • 如何在 C# 中存储之前验证 .csv 文件?

    我有一些 csv 文件 在存储到数据库之前我正在解析这些文件 我想让应用程序更加健壮 并在保存到数据库之前对 csv 文件执行验证 所以我问你们是否有一些好的链接 代码示例 模式或关于如何做到这一点的建议 我将在下面粘贴我的 csv 文件的
  • Swing:将事件委托给转换后的父组件的子组件

    我有一个自定义组件GameViewCanvas extends JPanel将容纳许多图块 800x800 纹理 现在在 GameViewCanvas 中我已经覆盖了paint 方法 以便它将在变换后的画布上绘制子项 缩放 平移和旋转 我现
  • 我应该在android服务的onDestroy方法中调用onCreate方法吗?

    我想在它被破坏时再次启动服务 Override public void onDestroy super onDestroy onCreate 你不应该这样做 这不会做任何事 要重新启动服务 您应该重新启动它onTaskRemove 像下面这
  • Python 中的二维优化(最小化)(使用 scipy.optimize)

    我正在尝试优化 最小化 二维函数E n k 定义如下 error lambda x y w math log abs Tformulated x y w math log abs Tw w 2 math atan2 Tformulated
  • HTML5 中的画布宽度和高度

    是否可以固定 HTML5 的宽度和高度canvas元素 通常的方法如下