我见过使用 GDI+、Java 以及 Photoshop 和 Gimp 提供的 Windows 上的抗锯齿功能。是否有任何其他库可以在不依赖主机操作系统支持的情况下提供抗锯齿功能?
3 回答
Antigrain Geometry在软件中提供抗锯齿图形。
正如 simon 指出的那样,抗锯齿这个词经常被误用/滥用,所以准确地知道你想要做什么总是有帮助的。
既然你提到了 GDI,我假设你在谈论在调整它们的大小时保持漂亮的清晰边缘 - 所以当你将它的大小调整为原始大小的 2 倍或 3 倍时,像字体中的字符之类的东西看起来很干净并且没有像素化。对于这类事情,我过去使用了一种称为 alpha 测试放大率的技术 - 您可以在此处阅读白皮书:
http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf
当我实现它时,我使用了不止一个平面,因此我可以在所有类型的对象上获得更好的边缘,但它在最后简要介绍了这一点。在缩放矢量图像时保持质量的所有方法(我使用过的)中,这是最简单和最高质量的。这还具有易于在硬件中实现的优点。从现有 API 的角度来看,您最好的选择是使用 OpenGL 或 Direct3D - 话虽如此,它实际上只需要双线性过滤和纹理映射来完成它的功能,因此您可以自己滚动(我过去有)。如果您总是在处理矩形并且只需要进行缩放,那么它非常简单,并且添加旋转不会增加太多复杂性。如果你自己滚动,
希望有帮助!
有许多可以使用的抗锯齿方法(通常是错误的名称,顺便说一句,但那是一匹死马)。根据您对原始信号的了解以及预期用途,不同的事物最有可能为您提供所需的结果。
如果输出是通过操作系统显示工具,“来自主机操作系统的支持”可能是最明智的,因为它们拥有关于对图像所做的操作的最多信息。
我想这是一个很长的路要问你到底想做什么?许多图形库将提供某种形式的抗锯齿,它们是否合适在很大程度上取决于您要实现的目标。