HTML5 canvas:有没有办法通过“最近邻居”重新采样来调整图像大小?

2024-05-26

我有一些 JS 对图像进行一些操作。我想要类似像素艺术的图形,所以我必须在图形编辑器中放大原始图像。 但我认为用小图像进行所有操作然后使用 html5 功能放大它是个好主意。这将节省大量处理时间(因为现在my demo http://anal-slavery.com/dolboebi/ (warning: 域名可能会导致工作中出现一些问题等)例如,在 Firefox 中加载时间非常长)。 但是当我尝试调整图像大小时,它会以双三次方式重新采样。如何使其在不重新采样的情况下调整图像大小?有没有跨浏览器的解决方案?


image-rendering: -webkit-optimize-contrast; /* webkit */
image-rendering: -moz-crisp-edges /* Firefox */

http://phrogz.net/tmp/canvas_image_zoom.html http://phrogz.net/tmp/canvas_image_zoom.html可以使用画布提供后备情况getImageData。简而言之:

// Create an offscreen canvas, draw an image to it, and fetch the pixels
var offtx = document.createElement('canvas').getContext('2d');
offtx.drawImage(img1,0,0);
var imgData = offtx.getImageData(0,0,img1.width,img1.height).data;

// Draw the zoomed-up pixels to a different canvas context
for (var x=0;x<img1.width;++x){
  for (var y=0;y<img1.height;++y){
    // Find the starting index in the one-dimensional image data
    var i = (y*img1.width + x)*4;
    var r = imgData[i  ];
    var g = imgData[i+1];
    var b = imgData[i+2];
    var a = imgData[i+3];
    ctx2.fillStyle = "rgba("+r+","+g+","+b+","+(a/255)+")";
    ctx2.fillRect(x*zoom,y*zoom,zoom,zoom);
  }
}

More: 有关图像渲染的 MDN 文档 https://developer.mozilla.org/En/CSS/Image-rendering

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

HTML5 canvas:有没有办法通过“最近邻居”重新采样来调整图像大小? 的相关文章

  • 无法使用 BeautifulSoup4 (Python 3) 抓取特定表

    我想从 Ligue 1 足球网站上抓取一张表格 具体来说 该表包含有关卡片和裁判的信息 http www ligue1 com LFPStats stats arbitre competition D1 http www ligue1 co
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • html 电子邮件内的背景图像 css - Gmail 不支持

    我想向我的用户发送如下所示的带有背景图像 css 的 html 正文电子邮件 div style width 500px height 1000px background color black background image none
  • 滚动时的 CSS 背景模糊

    我有固定的背景图像 滚动时我希望图像变得模糊 我知道如何在 css 中进行模糊 但在特定的滚动位置进行 这是一个例子 https medium com good music f160ba9e6c52 https medium com goo
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何停止TinyMCE删除span标签?

    在我的工作中 前一位程序员决定使用公司网站上精彩的TinyMCE 我遇到的数千个问题之一是 如果原文有的话span标签 当我按下退格键删除一行 p仅标签 全部span标签已从文本中删除 这个错误比另一个错误更具体 我可以删除anything
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 图像随机损坏(但刷新后加载)并显示“资源解释为图像但使用 MIME 类型 text/html 传输”

    我目前正在开发一个简单的 php 网站 问题是 我的整个网站中的图像 发生在所有 php 文件中 随机损坏并显示错误资源解释为图像 但以 MIME 类型 text html 传输但是 如果我尝试多次刷新页面 可以再次加载图像并且错误消失 我
  • 无法读取未定义的属性“搜索”

    我正在尝试制作一个使用 YouTube API 的脚本 我输入了一个关键字 youtube api 找到视频 gt 脚本获取第一个结果并返回 VideoID 现在我的问题是 当我按下提交按钮时 搜索功能不会被触发 有谁知道这可能是什么原因
  • 以编程方式更改 html 选择下拉列表后 onchange 不会触发

    我在 HTML 中有一个选择
  • Chrome:当父级固定时,无法将一个绝对 div 放置在另一个 div 上

    我发现 当我想要位于顶部的 div 的父级固定时 我无法将一个绝对定位的 div 放置在 Chrome 中的另一个 div 上 div div div div div div 这是演示该问题的 JSFiddle http jsfiddle
  • 如何在数据表中colspan rowspan?

    I am trying to use colspan and rowspan attributes with jQuery Datatables where a product sku can span 2 rows and a week
  • socket.io 的良好初学者教程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Twitter 卡元标签问题

    有问题的网址 https www halleonard com viewpressreleasedetail action releaseid 10261 https www halleonard com viewpressreleased
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 不可勾选的单选按钮与专有的复选框

    从 UI 角度来看 是拥有一组具有取消选中功能的单选按钮更好 还是拥有一组独占的复选框 意味着一次只能选中一个 更好 Update 我没想到对此会有如此负面的反应 如果我给出一个更接近其使用方式的示例 也许会有所帮助 我有一个充满数据绑定内
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • A:Visited 未检测到 AJAX 链接

    我注意到a visited样式不适用于通过 JavaScript 请求的链接 但是 在标准用户单击时 会立即和随后的刷新时注册访问的完全相同的链接 我不确定这是否是独一无二的jQuery 移动 http forum jquery com t
  • JavaScript 键码 46 是 DEL 功能键还是 (.) 句点符号?

    我使用 jquery 在 JavaScript 中编写一些逻辑 其中我必须根据 REGEX 模式检查输入内容 例如 a zA Z0 9 Alpha numeric and 逻辑差不多完成了 我只是在过滤功能键 DEL 时遇到了一点问题 我的
  • 为什么在 CSS3 中启用硬件加速会降低性能?

    我在 css3 实验中将 10 000 个小 div 元素从浏览器视口的顶部移动到底部 对于此测试 我使用两种不同的方法 使用 GPU 加速translate3D x y z or translateZ 0 无需 GPU 加速 只需调整to
  • OpenCV Python 和 SIFT 功能

    我知道有很多关于Python and OpenCV但我没有找到有关这个特殊主题的帮助 我想提取SIFT关键点来自 python OpenCV 中的图像 我最近安装了 OpenCV 2 3 可以访问 SURF 和 MSER 但不能访问 SIF
  • 在 iOS 中对 Google 地图标记进行聚类

    我有一个基于地图的应用程序 使用 Google 地图的 iOS SDK 我需要在核心数据数据库中存储多达数千个项目 并在地图上用标记显示它们 出于性能和可用性的原因 我需要在用户缩小时对这些标记进行聚类 但我需要确保放置代表性标记 以便用户
  • 我在 Android Studio 中使用哪个版本的 JDK 有关系吗?

    I know I can choose the SDK location in Android Studio s Project Structure 我有两个问题 当我们已经使用Android SDK时 为什么还需要JDK 毕竟我们不是为
  • Pandas 将 NULL 读取为 NaN 浮点数而不是 str [重复]

    这个问题在这里已经有答案了 给定文件 cat test csv a b c NULL d e f g h i j k l m n 其中第三列被视为str 当我对列执行字符串函数时 pandas已阅读NULLstr 作为一个NaN float
  • 使用无符号而不是有符号 int 是否更有可能导致错误?为什么?

    In the 谷歌 C 风格指南 https google github io styleguide cppguide html Integer Types 关于 无符号整数 主题 建议 由于历史意外 C 标准也使用无符号整数来表示容器的大
  • Visual Studio 2010:依赖图

    我有VS 2010专业版 我可以使用 依赖图 做什么 我没有 建筑 版本 有没有我可以使用的免费插件 如果没有 是否有任何免费的第三方工具可以帮助我做同样的事情 Thanks 我需要类似的东西 但不想付费 或安装 工具来完成它 我创建了一个
  • Aurelia 验证不适用于对象属性

    我无法让 Aurelia Validate 处理我的日历记录中的字段 日历 html 摘抄
  • Laravel 5:如何检索并显示属于特定类别的所有帖子

    我有3张桌子 user id username subreddits id name created at posts id title link user id subreddit id 问题是 我手动获取 subreddit 类别的 i
  • 小部件双击

    我有一个小部件 AppWidgetProvider 我想知道是否有办法支持多次点击 示例 1 如果是第一次点击widget 那么widget的ImageButton会发生变化 例如 改变颜色 2 如果是第二次 则打开一个Activity A
  • 如何从 main 之外的类访问 XAML 对象?

    如果我尝试 var mainpage new Mainpage 我将运行主页构造函数 然后 XAML 对象中的所有字段都将返回 null 如何在 silverlight 中访问来自不同类但属于同一命名空间的 XAML 对象 让我通过例子来解
  • 如何使用 gatsby-image 不裁剪地显示图像?

    实例 图像可能加载缓慢 https suhadolnik photo surge sh portreti https suhadolnik photo surge sh portreti 我正在使用 GatsbyJS 制作一个摄影网站 并使
  • ASP.NET Core 7.0 登录时出错:证书链由不受信任的机构颁发

    我使用 SQL Server 创建了一个简单的 NET 7 0 应用程序 如果我使用默认的 localdb 甚至在将其更改为 网络服务器 之后 我会收到以下错误 证书链是由不受信任的机构颁发的 我的连接字符串是 mysqlserver co
  • 在Windows cmd中获取精确到毫秒的系统时间

    我试图在 Windows cmd 中将系统时间精确 到毫秒 我知道可以使用以下方法获得厘秒精度 echo time 我发现其他问题提出了完全相同的问题 但没有答案可以完全回答该问题 这是我到目前为止发现的 该解决方案仅适用于厘秒精度 与我上
  • 如何设置Java线程的CPU核心亲和力?

    我搜索了以前关于类似主题的帖子 但找不到合适的答案 因此提出这个问题 非常感谢您帮助回答 我知道在 Linux 中通过任务集命令设置进程与特定 CPU 核心的关联性 但我想设置 Java 线程与特定 cpu 核心的亲和力 以便属于同一进程的
  • 渲染函数的反应性参数

    我在 Flexdashboard 中有一个表 其列数可以更改 我可以动态计算列的对齐方式 默认对齐方式 23 45作为字符向量 因此左对齐该值 尽管它是一个数字并且应该右对齐 问题是我无法将此对齐传递回renderTable作为一个值ali
  • 为什么 GORM 不保存我的对象?

    如果我在 Grails 控制台中执行此代码 def p new Post title T p save flush true or p save Post count GORM 没有抛出任何异常 但数据没有保存在我的数据库中 我究竟做错了什
  • HTML5 canvas:有没有办法通过“最近邻居”重新采样来调整图像大小?

    我有一些 JS 对图像进行一些操作 我想要类似像素艺术的图形 所以我必须在图形编辑器中放大原始图像 但我认为用小图像进行所有操作然后使用 html5 功能放大它是个好主意 这将节省大量处理时间 因为现在my demo http anal s