我在python 3.X中有一个简单的代码来为.PNG图像添加反别名,我已成功通过将图像大小缩小4倍来尝试它,这里是代码:
def resize(surf, size):
"""
Anti-aliasing by average of color code in four pixels
with subsequent use of the average in a smaller surface
"""
new_surf = pygame.surface.Surface((768,480))
#take sample on the picture
for j in range(0, 480, 2):
for i in range(0, 768, 2):
r1, g1, b1, a1 = surf.get_at((i, j))
r2, g2, b2, a2 = surf.get_at((i+1, j))
r3, g3, b3, a3 = surf.get_at((i, j+1))
r4, g4, b4, a4 = surf.get_at((i+1, j+1))
#averaging the sample
r1all = (r1 + r2 + r3 + r4) / 4
g1all = (g1 + g2 + g3 + g4) / 4
b1all = (b1 + b2 + b3 + b4) / 4
a1all = (a1 + a2 + a3 + a4) / 4
#put new value on the sample
new_surf.set_at((i//2, j//2), (r1all, g1all, b1all, 255))
new_size = size
return new_surf, new_size
如果我不需要通过更改此代码来调整图像大小,我想尝试一下,我希望反锯齿效果仍然可以出现。
#put new value on the sample
new_surf.set_at((i, j), (r1all, g1all, b1all, 255))
但是在尝试不调整图像大小之后,结果像这个图像一样奇怪和黑暗:
我的问题,你们能告诉我这是什么问题吗?怎么解决这个问题?我的目标:在不调整图片分辨率的情况下使图像保持清晰白色,但结果与图片成功相同,例如调整尺寸缩小4倍'
我听到一些使用超级采样AA的参考,但我不知道如何应用它。