我在Windows上看过使用GDI +,Java以及Photoshop和Gimp提供的抗锯齿功能。是否有其他库提供抗锯齿设施而不依赖主机操作系统的支持?
答案 0 :(得分:4)
Antigrain Geometry在软件中提供抗锯齿图形。
答案 1 :(得分:3)
正如西蒙指出的那样,抗锯齿一词经常被滥用/滥用,因此确切地知道你想要做什么总是有帮助的。
既然你提到了GDI,我会假设你正在谈论在你调整它们时保持漂亮的清晰边缘 - 所以当你调整它的原始尺寸2x或3x时,像字体中的字符看起来很干净并且没有像素化。对于这些类型的东西,我过去曾使用过一种叫做alpha测试放大的技术 - 你可以在这里阅读白皮书:
http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
当我实现它时,我使用了多个平面,因此我可以在所有类型的对象上获得更好的边缘,但它会简单地覆盖到最后。在缩放矢量图像时保持质量的所有方法(我已经使用过),这是最简单和最高质量的。这还具有易于在硬件中实现的优点。从现有的API角度来看,最好的办法是使用OpenGL或Direct3D - 也就是说,它实际上只需要双线性过滤和纹理映射来完成它所做的事情,所以你可以自己滚动(我过去)。如果你总是处理矩形并且只需要进行缩放,那么它非常简单,并且添加旋转不会增加那么多的复杂性。如果您自己滚动,请务必特别注意子像素定位(如何解决不落在整个像素上的像素位置,因为这对质量至关重要,有时会被忽视。
希望有所帮助!
答案 2 :(得分:0)
有(通常是错误的,顺便说一下,但这是一匹死马)许多可以使用的抗锯齿方法。根据您对原始信号的了解以及预期用途,不同的事物最有可能为您提供所需的结果。
如果输出是通过操作系统显示设备,那么“来自主机操作系统的支持”可能是最明智的,因为他们拥有关于图像处理内容的最多信息。我想这是一个很长的问题,你问你究竟想做什么?许多图形库将提供某种形式的抗锯齿,无论它们是否合适取决于你想要实现的目标。