各位程序员大家好,
我编写了一个小 python 程序,用于在逆绘图发行版上启动随机游戏,并且在启动游戏之前使用 pygame 显示游戏的图像
我使用背景,我的问题是背景图像很干净,但是当显示它以及它上面的游戏封面时,它会出现奇怪的难看的渐变效果,正如您所看到的:/image/WaFV4.jpg
它主要出现在角落,盖子本身完全不受影响。
这是我的 pygame 代码,显示两个图像:
log('showPic %s' %file)
# INITS
pygame.init()
pygame.mouse.set_visible(0)
backgroundPicture = pygame.image.load(backgroundFile)
picture = pygame.image.load(file)
# # CREATE FULLSCREEN DISPLAY. X = 1920- Y = 1080
fullscreen = pygame.display.set_mode((1920,1080), FULLSCREEN)
fullscreen.blit(backgroundPicture, (0,0))
# # PASTE PICTURE ON FULLSCREEN
x = (1920 - picture.get_width()) /2
y = (1080 - picture.get_height()) /2
fullscreen.blit(picture, (x,y))
# # SHOW FULLSCREEN
pygame.display.flip()
# # WAIT 5 SECONDS (need import time)
time.sleep(5)
# # EXIT PYGAME (Not needed but recommanded)
pygame.display.quit()
pygame.quit()
backgroundPicture
是背景图像,picture
是游戏的封面,我将它们组合起来,就像第二次捕获中出现的那样。
所以主要是我对显示、图像、图形库等等知之甚少。 我认为这可能与图像的透明度或 alpha 层或压缩格式有关,但我对此一无所知。 该代码是在带有linux发行版的树莓派上启动的,对此不太了解。
同样奇怪的是,我的一位用户说奇怪的渐变效果似乎在脚本启动十次左右后就消失了,但我无法重现这一点。
那么我缺少什么来消除这种丑陋的效果呢?
感谢您的帮助!
最佳答案
您看到的效果称为“ strip ”,请参阅 Wikipedia article 。这是由于没有足够的位深度来表示精细的颜色渐变而引起的,并且在大的无纹理区域中最为明显。
对此你无能为力。您的选择基本上是:
- 转到 16 位设置而不是 8 位(如果 pygame 可以做到这一点),或者
- 添加少量随机噪音,或通过抖动来分解噪音。
关于python - pygame : Getting rid of strange gradient effect on displayed image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52414478/