HTML5 Canvas - alpha 值较低的条带?

2024-01-01

介绍

我目前正在开发一个类似于 MugTug 的小型绘图应用程序画板 http://mugtug.com/sketchpad/。不过,有一个非常烦人的问题我还没有解决。

绘图算法

我的基本绘制算法与 MugTug 使用的算法类似。基本上它只是在用户绘图时使用drawImage 来标记图像。有一个严重的障碍。该算法在 alpha 值较低时开始失败。

您可以在 MugTug 的工具中通过按以下方式设置画笔设置轻松地看到这一点:直径 -> 100,硬度 -> 1,流量 -> 100,不透明度 -> 2(1 太小!应用程序中的错误?)。

主要存在两个问题: 1. 可见条带。 2. 颜色变化(尝试不同的颜色来看看它是如何工作的......)

问题

该问题是否与颜色精度有关?在我看来,Canvas API 使用 8 位通道(即 0-255)处理颜色。有什么办法可以绕过这个限制吗?如果可能的话,我更愿意使用纯浮点颜色(0.0-1.0)。

欢迎任何有关如何处理此问题的想法。如果颜色确实仅限于 8 位通道,我想我运气不好......


这个问题似乎完全是由于颜色精度造成的。我认为大多数 Canvas API 实现都使用 8 位 RGBA 通道。 1% 或 2% 的不透明度意味着您在图像上应用了非常少量的颜色,只有大约 2-5 级的差异 - 因此即使在多次重复应用画笔之后,您使用的任何颜色最终都会被量化为更小的数字。

您可以制作自己的浮点画布,并在每次更改后将其复制到普通画布中。这将使大多数操作完全察觉不到该问题。您必须实现自己的绘图操作(如果您只使用的话还不错drawImage)并且它们可能比画布慢。

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

HTML5 Canvas - alpha 值较低的条带? 的相关文章

  • 提交表单并重定向页面

    我在 SO 上看到了很多与此相关的其他问题 但没有一个对我有用 我正在尝试提交POST表单 然后将用户重定向到另一个页面 但我无法同时实现这两种情况 我可以获取重定向或帖子 但不能同时获取两者 这是我现在所拥有的
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 是否有任何 javascript 库可以为 HTML 创建一个漂亮的结构化(树)差异?

    我正在尝试提出一个解决方案来支持我们在整个网站中使用的 历史视图 机制 对于此历史视图的 UI 我想向用户展示对象的两个修订之间发生的更改 换句话说 差异 这是一个真正的挑战 因为所讨论的对象都相当复杂 我认为最好的方法是将每个对象渲染为
  • 在 Express Nodejs 中将图像文件转换为 Base64

    我正在尝试将图像文件转换为base64 这样我就可以以base64字符串形式存储在mongoDB中 这就是我尝试这样做的方式 router post file upload function req res function base64
  • CSS3、WebKit 过渡顺序?如何排队等候转场?

    我有以下内容 webkit transition property top bottom z index webkit transition duration 0 5s 问题是我不希望 z index 在顶部和底部完成之前转换 有没有办法告
  • 用于绘制音符的库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以以某种方式在屏幕上绘制音符的 Windows 库 我将使用它用 C 编写一个应用程序
  • 如何将div对齐到页面底部,而不是屏幕底部

    我想将 div 与页面底部对齐 而不是与屏幕底部对齐 当我这样做时 contact block position absolute bottom 0 left 0 div 被放置在屏幕的底部区域 当我的页面很长时 我必须向下滚动 并且本应位
  • 在屏幕上随机生成一个圆圈并将其设为绿色或红色

    所以我一直在尝试制作一个游戏应用程序 它可以在 Android 屏幕上随机显示带有文本的红色按钮或带有文本的绿色按钮 如果有人可以帮助我 我将不胜感激 另外 如果有人知道如何做到这一点 我想慢慢地产生更快的酷优势 谢谢 SuppressLi
  • 除非我在 HTML 中使用 标签加载图像,否则背景图像不会显示在 CSS 中

    我非常困惑为什么我的代码无法正确显示图像 这是我的代码 div p p div 只有图像的一小部分与文本一起显示 我很困惑为什么会发生这种情况 显示整个图像的唯一方法是在图像周围添加近 170 像素的填充 请有人帮忙 Thanks 你之前需
  • 如何在光标下的所有元素上调用 mouseover?

    我有一个网络应用程序 每次单击时都会创建一个点 见下文 当我将鼠标悬停在一堆点上时 我希望光标下的每个点都会触发 mouseover 或 mouseenter 事件 然而 只有一个事件被触发 即堆栈 顶部 的点的事件 当鼠标移动到一堆多个点
  • 使用 CSS Flexbox 堆叠图像

    我正在学习使用CSSflexbox 和我想在左侧渲染一个大图像 并在彼此之上渲染两个小图像 我怎样才能使用CSS弹性盒 div class container img class image1 src alt null img class
  • dompdf:找不到图像或类型未知

    这是我的代码 我几乎尝试了所有在 PDF 上显示图像的方法 但仍然不起作用 你能帮我解决这个问题吗 我还将 DOMPDF ENABLE REMOTE 设置为 true 结果仍然相同 require once dompdf autoload
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • C# 中的 mshtml.HTMLDocumentClass

    在 C 中 我设法从 InternetExplorer 对象获取整个 HTMLDocumentClass 导航到某个 URL 然而 在 Visual Studio 2008 的调试模式下 该特定 URL 的 HTMLDocumentClas

随机推荐

  • User.config 损坏

    因此 我做了相当多的研究来试图解决这个问题 但似乎无法 1 重现该问题 但更重要的是 2 找到一个最新的解决方案来修复它 这种情况在两周内已经发生过两次 其中 user config 文件会随机损坏 例如 XML 文件的块会丢失 从而导致应
  • 如何推送(使用 libgit2)

    如何使用 libgit2 进行推送 喜欢git push origin master在控制台上 我想使用C版本 克隆 打开 添加文件到索引并像魅力一样提交工作 请参阅code http pastebin com ta9EjMBn test
  • 聚焦时的 UWP 文本框背景

    由于某种原因 没有简单的方法可以将 TextBox 的焦点背景从默认的白色更改为白色 它工作的唯一方法 我需要它是深色或透明的 是创建自定义文本框 粘贴大量代码行 来自 然后编辑两行
  • 使用 Selenium 突出显示文本

    我有一个上下文敏感菜单 需要突出显示文本才能正常工作 但是 我在使用 Selenium 选择文本时遇到问题 我首先找到我正在寻找的 WebElement 然后尝试使用不同的可用鼠标事件与其进行交互 When I m trying to se
  • Android 上的远程调试 Chrome 问题

    我在 Android 设备 运行 Android 版本 4 0 4 的 LG Nitro 上使用 Chrome 开发人员工具的远程调试功能时遇到问题 几天前它工作得很好 但现在我的设备从未出现在 about inspect 页面上 我已关注
  • 在 Rails 中检查和验证非模型参数的位置

    在 Ruby On Rails 中 您在哪里检查不是模型属性的 URL 参数 例如 page per page sort mode 在控制器中还是在模型中 例如 当执行更复杂的数据库查询时 您会检查参数并可能在控制器中设置默认值 然后执行以
  • 调用超类的超类方法?

    我怎样才能让孩子忽略父母认为有趣的事情而直接去祖父母认为有趣的事情呢 孩子仍然继承自父母 但它只是不同意一些方法 调用超类的超类的方法 另外 如果我处于孩子不同意父母的意见但同意父母的父母的情况 这是否被认为是糟糕的设计 class Gra
  • 使用哪个供应商的 JDK 构建重要吗?

    如果我要部署到使用 WebSphere 6 1 Java 1 5 的服务器 我应该在我的构建箱上使用 IBM 的 JDK 吗 或者 Sun 的 JDK 会编译成相同的二进制文件吗 如果我应该使用 IBM 的 我在哪里可以获得 Windows
  • Heroku Local [警告] 未找到 ENV 文件

    当我跑步时heroku local 我的控制台向我显示 警告 未找到 ENV 文件 我怎样才能解决这个问题 Add an env文件 该文件包含本地VARS您的本地设置与 heroku 环境不同 但是 如果一切正常 您可以忽略该警告 或者执
  • 如何从 pickle 文件一次加载一行?

    我有一个大数据集 20 000 x 40 000 作为 numpy 数组 我已将其保存为 pickle 文件 我不想将这个巨大的数据集读入内存 而是一次只读取其中的几行 例如 100 行 以用作小批量 如何从 pickle 文件中只读取一些
  • Bootstrap表单-无标签文本的复选框水平垂直对齐

    今天早上我已经从 Bootstrap 3 0 0 更改为 3 2 0 因为我的 Web 应用程序需要一些新功能 一切似乎都按预期工作 直到我观察到复选框垂直对齐的问题 form horizontal form 一个例子可以在http www
  • JDK8 的 JDK 11 迁移问题,com.fasterxml.jackson.module.afterburner.util.MyClassLoader 进行非法反射访问

    我已成功将我的 spring boot 项目 在 prod env 中运行 从 JDK8 迁移到 JDK11 我可以构建 测试 打包 安装 部署等等 从 IDE 启动项目后 我的日志中出现以下警告 但这并没有停止构建和运行我的应用程序 请就
  • OpenSSL,将 CRT 转换为 PEM

    我一直在尝试使用 openssl 将 crt 证书转换为 pem openssl exe x509 in server crt out openssl der outform DER 使用该命令后 我得到 无法加载证书1760 错误 090
  • 底图:如何删除实际的纬度/经度线,同时保留轴上的刻度线

    我按底图绘制了地图 如下所示 plt figure figsize 7 6 m Basemap projection cyl llcrnrlat 40 125 urcrnrlat 44 625 llcrnrlon 71 875 urcrnr
  • 如何在 Pubnub Android 示例中使用 Xirsys Hosting?

    https github com GleasonK android webrtc api https github com GleasonK android webrtc api 我是韩国的学生 我正在做我的学校项目 我正在使用上面网站上的
  • 从解析表中删除一行

    我有一个名为 最喜欢的标签 的表 它有字段 标签 用户 指针 相应的用户对象 ID 其中用户可以存储标签以及用户对象 ID 作为用户字段中的指针 并且用户可以从收藏夹中删除标签 对于存储 更新 它工作正常 ParseObject favta
  • 如何使用 Windows 批处理增加文件夹名称?

    我有一个批处理脚本 它创建一个名为 New Folder 的文件夹以及其中的一些子目录和文件 目前 如果我需要创建多个 New Folder 我必须重命名该批处理创建的每个 New Folder 然后才能再次运行它并创建一个新文件夹 我想做
  • 如何为 Google Cloud Pubsub“创建”/“分配”日志记录处理程序?

    发展从上一个线程 https stackoverflow com questions 54249312 python pubsub subprocess complaining about logger handler how do i f
  • 使用for循环迭代二维数组的时间复杂度是多少?

    In 这个答案 https stackoverflow com questions 11032015 how to find time complexity of an algorithm answer 22688792 它说 如果算法的执
  • HTML5 Canvas - alpha 值较低的条带?

    介绍 我目前正在开发一个类似于 MugTug 的小型绘图应用程序画板 http mugtug com sketchpad 不过 有一个非常烦人的问题我还没有解决 绘图算法 我的基本绘制算法与 MugTug 使用的算法类似 基本上它只是在用户