【发布时间】:2014-07-14 05:04:45
【问题描述】:
我正在使用 Pygame 绘制一些东西。问题是它们有很多锯齿边缘:
我想让它们更柔软,像这样:
到目前为止,我的想法是绘制双倍大小的形状,然后使用
pygame.transform.smoothscale(surf, (w/2, h/2))
把它缩小到我想要的大小。
不幸的是,如果我在透明表面上绘制形状,平滑刻度会将接触透明像素的边缘变为黑色!
- 如何在不将 Alpha 透明像素变为黑色的情况下平滑缩放图片,或者
- 我还能如何对边缘进行抗锯齿处理?
【问题讨论】:
-
请运行样本。
-
我已经有一段时间没有使用 Pygame 了,或者根本没有使用太多,但是是否有可能制作一个包含它应该位于顶部的背景部分的新图像,按比例放大, 叠加精灵,然后收缩和 blit that?
-
有一种绘制抗锯齿圆的方法(pygame.org/docs/ref/gfxdraw.html)。你能用它在你的实心圆圈周围画一个圆圈吗?
-
我的形状不是圆形... johncip 有一个非常好的主意,但如果可能的话,我更喜欢一种不包括取地下、加倍大小并再次缩小的方法(这需要更多时间)但现在我会使用它!谢谢
-
@superGeek 如果 johncip 的想法可行,那就太好了。此外,仅供参考,我发布的链接还有其他抗锯齿形状(椭圆、三角形和多边形)。
标签: python pygame antialiasing