- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在试验 Canvas 笔划文本,我注意到在使用大笔划线宽时某些字母上出现奇怪的伪像。
问题有时出现在相同字母上的不同字体(但这实际上取决于字体系列/样式)。
代码段尽可能简单明了:
(function() {
var canvas = document.querySelector('#canvas');
var ctx = canvas.getContext('2d');
ctx.font = 'bold 110px "Arial"';
ctx.lineWidth = 26;
ctx.strokeStyle = '#a4ff11';
ctx.strokeText('Water', 100, 100);
ctx.fillStyle = '#ff0000';
ctx.fillText('Water', 100, 100);
})();
<canvas id="canvas" width="800px" height="800px"></canvas>
我也是linking an image它在我的浏览器中的呈现方式:
这是常见的事情吗?我是个笨手笨脚的人,我还没有弄清楚(如果你足够大地增加字体大小,它确实会消失)或者还有更多吗?
最佳答案
将上下文的 lineJoin
属性设置为 bevel
或 round
(以您认为最好的为准)或者将其保持在 miter
并将 miterLimit
属性设置为相当低的值。
(function() {
var canvas = document.querySelector('#canvas');
var ctx = canvas.getContext('2d');
ctx.font = 'bold 110px "Arial"';
ctx.lineWidth = 26;
ctx.lineJoin = 'miter';
ctx.miterLimit = 2; // fiddle around until u find the miterLimit that looks best to you.
// or ctx.lineJoin = 'round';
// or ctx.lineJoin = 'bevel';
ctx.strokeStyle = '#a4ff11';
ctx.strokeText('Water', 100, 100);
ctx.fillStyle = '#ff0000';
ctx.fillText('Water', 100, 100);
})();
<canvas id="canvas" width="800" height="800"></canvas>
如果您想了解有关 lineJoin
属性的更多信息,那么这是一个很好的起点: https://developer.mozilla.org/de/docs/Web/API/CanvasRenderingContext2D/lineJoin
关于javascript - Canvas 描边文字锐利神器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31224680/
我有一个库项目,在 Android Studio 1.3.0 上开发并部署到 Artifactory Open Source Local Repository (3.5) 但是当我尝试在应用程序项目中
logging 是 python 标准模块,用于记录和处理程序中的日志。 功能很强大,官方文档很详细,网上也有大量的说明和教程,但是对很多初次接触的同学来说,存在一些障碍。 一是因为标准库文
我正在尝试使用 Maven 生成用于在 Vignette Portal 上部署的工件。包装与war完全一样工件但文件应该有 car取而代之。 我尝试过但无法完成的选项。 使用 war 插件并重命名最终
为什么 Points AdditiveBlending 只在从右看而不是从左看时有效?设置 depthTest:false 会解决问题,但会引发另一个问题,即点覆盖其他网格。 My fir
我对 UITextField 在动画 block 中移动时出现的工件有疑问... 在我移动我的 UITextField 之前它看起来像这样: 像这样移动之后: 我的猜测是它与 UITextField
单击此导航菜单中的第一个下拉菜单后,它将按预期加下划线,一旦菜单失去焦点(即单击页面上的其他位置),标签末尾的下划线不会被删除。 仅在 Chrome(版本 45.0.2454.85 m)中发生 我希望
我有一个简单的“hello world”C++ 项目:https://github.com/RomainGoussault/Deepov 我使用 Eclipse IDE for C/C++ Devel
使用方法有两种,可以用 XShell 或 Putty 上去命令查看,也可以生成 html 报告。 下面介绍GoAccess 在 CentOS 上的安装方法: 1. 需要安装 GeoIP, ncu
我一整天都在尝试将我的 javafx 应用程序转换为 jar 文件。我正在使用 Java 1.7 更新 7。 Oracle 有 some information ,但它似乎散落在各处。 Intelli
我实际上希望通过项目中的传递依赖项获得 powermock 1.5.6 版,但我只得到 1.4.11。这是什么意思? 最佳答案 在解析依赖项时,Maven 将更喜欢 POM 部分中指定的版本,而不是从
是否有公开可用的 maven 存储库将 Apache Tomcat 二进制分发 ZIP 托管为 maven Artifact (我的意思是可以通过 http://tomcat.apache.org 下
我希望在单击时播放 mp4 工件文件。 但是,当我点击mp4工件文件时,它看起来像下图。它不播放 如果我下载它然后我可以在我的本地 PC 上播放它。 所以我尝试了 HTML5 嵌入功能来流式传输它。我
我在 VSTS 上设置了构建/测试/发布。我们还有另一个管道(在 Linux 中)从具有给定构建 ID 的构建系统中获取构建工件。那么有没有办法从 Linux 上的 VSTS 下载构建工件?我发现不登
用 Ventoy 创建多启动 U 盘,你将永远不会缺少自己喜欢的 Linux 发行版。 给朋友和邻居一个可启动 U 盘,里面包含你最喜欢的 Linux 发行版,是向 Linux 新手介绍我们都
API 管理工具可以说是每个前端/后端开发必备的工具了,一个好的 API 管理工具可以提高团队的工作效率。 目前市面上有不少 API 相关的工具,比如 Postman、swagger 等。最近我也尝试
我有一个关于 JFrog Artifactory 用于在 Artifact 中查找“事物”的 AQL( Artifact 查询语言)的问题。 AQL 似乎非常强大,但我想知道如何使用正确的术语构建(正
我正在使用 Maven 3.1.1、Java 6 和 JBoss 7.1.3。我想在我的 JSP 上将对象呈现为 JSON,但是当我将其包含在我的 pom 中时
每次我对 POM 进行最微小的更改时,Intellij 都会删除项目结构输出目录设置中分解 Artifact 的 .war 扩展名。这会导致 Intellij 的运行/调试配置出错: Artifact
我的目标是进行对象跟踪。 我有一个 UWP c# 应用程序和链接的 c++ windows 运行时组件。在那里我可以获得对 opencv 的访问权限。 在 c# 中,MediaCapture 返回 S
遵循 http://doc.gitlab.com/ee/ci/yaml/README.html 的文档设置文件 .yml 我通过创建 artifacts 发现了问题,当构建要下载此 ZIPAPK 文件
我是一名优秀的程序员,十分优秀!