javascript - 画布上的图像看起来与 html标记中的图像不同
问题描述
我正在尝试使用 HTML 画布裁剪图像。但即使在裁剪图像之前,当我在画布上渲染它时,图像看起来也很模糊。然后我使用 HTML 标签渲染了相同的图像,并且图像并不模糊。我为画布和 img 标签使用了 300px 的宽度和高度。我似乎无法找出为什么图像在画布中看起来模糊。
const img = document.querySelector(".my-image");
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, canvas.width, canvas.height);
在图像标签上渲染的图像如下所示: 使用标签渲染的图像
在画布上渲染的图像如下所示: 在画布上渲染的图像
解决方案
如果我查看您分享的两张图片,这两张图片似乎是 600x600 像素。
- 在第一种情况下,使用
img
标签,图像似乎以 600x600 像素显示。 - 在第二种情况下,使用该
canvas
方法,您将图像裁剪为 300x300 像素,但您的页面通过将其拉伸到 600x600 像素来显示结果,这似乎会产生这种模糊效果。
推荐阅读
- python - 使用pyodbc将python字典列表插入sql server
- java - Spring-Security:使用自定义身份验证器和自定义登录页面
- xamarin - Xamarin - 如果 CollectionView 为空,则显示文本
- odoo - 我们可以在自定义模块 Odoo 中使用产品配置器吗
- android - Android Studio:XmlRpcClientException 无法解析服务器响应:意外的非空白字符数据
- php - 从 Laravel 查询中获取数据的问题
- optimization - 减少反向传播步骤的数量可以提高训练性能吗?
- arrays - 数组中的Matlab点索引错误填充了一个类中的对象
- pandas - Pandas:使用 ndarray 查找行
- javascript - 如何在 GridFs 中获取上传文件的 ID 以与另一个模型关联