我想知道是否有人知道是否可以在Chrome(和/或Safari)的HTML5画布中启用子像素渲染。
Chrome在HTML中进行子像素渲染,而FF则用于HTML和HTML。画布渲染。具体问题如下图所示:
答案 0 :(得分:7)
简短回答:不。不可能
这是使很多Canvas用户感到沮丧的两个主题之一。
任何类型的子像素渲染/消除锯齿取决于浏览器。这意味着不同的浏览器倾向于以不同的方式呈现事物。
很多人要求抗锯齿是一个可以针对特定环境打开或关闭的选项。没有这样的运气。
Chrome尤其需要密切关注,因为他们处理子像素渲染的方式在过去4个月内发生了巨大变化。如果您开始使用Chrome developer channel,您将会预览他们不断尝试的内容。他们在这个领域做过相当多的测试,甚至推动了我complained about.
的一些剧烈的倒退变化。这里的内容是:
答案 1 :(得分:1)
我不相信这是可能的。
这是一个难题,因为canvas为用户提供了如此多的低级控制。如果canvas开始做这样的智能事情,它可能会破坏用户期望的其他功能。
考虑其他图形元素的子像素渲染 - 根据应用程序,程序员可能不希望这样,并且你当然不希望子像素渲染任意地为整个元素打开作为一个全有或全无的命题。想象一下获得特定像素的颜色 - 这里的答案是正确的吗?画布应该躺下并返回预期的颜色,或者返回实际的颜色(所以我们必须在这里整天回答问题“为什么这个像素我变成黑色被测量为暗红色?”)。
有些人会说Firefox在这里做错了。
答案 2 :(得分:1)
这是一种为任何画布内容(文本,图像,矢量等)进行子像素渲染的方法。 http://johnvalentine.co.uk/subpixel-html5-canvas.htm
方法概要
它绘制到画布上,然后将其绘制到屏幕上以利用RGB条纹子像素。它也适用于alpha通道。请注意,如果您使用纵向显示,无条纹像素,或者浏览器显示的分辨率低于显示器,则可能无法使用此功能。
可以进行微调,但对于一种简单的方法来说,这是一个很大的收获。它适用于我测试的所有浏览器,但仅限于画布到屏幕的像素比为1:1(但我相信已经提供了解决方案)。
答案 3 :(得分:0)