pygame:摆脱显示图像上奇怪的渐变效果

时间:2018-09-19 21:32:18

标签: python image graphics pygame

各位程序员,

我编写了一个小python程序,用于在重新分布发行版上启动随机游戏,并且在启动游戏之前,我使用pygame来显示游戏的图像

我使用背景,但我的问题是背景图像很干净,但是在显示背景图像和游戏封面时,它看起来像一个奇怪的难看的渐变效果,如您所见:https://imgur.com/a/BnNdoqn < / p>

它主要出现在角落,而封面本身完全不受影响。

这是我的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发行版的树莓派上启动,对此了解不多。

奇怪的是,我的一位用户说,奇怪的渐变效果在启动脚本大约十次后似乎消失了,但是我无法重现。

那么,要摆脱这种丑陋的效果,我又缺少什么呢?

如果特征可能与问题有关,请在此处查看背景图片: background.png

谢谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您看到的效果称为“条带化” ,请参见Wikipedia article。这是由于没有足够的位深度来表示精细的颜色渐变而引起的,并且在较大的无纹理区域中最为明显。

您对此无能为力。您的选择基本上是:

  • 如果 pygame 可以这样做,则使用16位而非8位设置,或者
  • 添加少量随机噪声,或抖动以将其分解。