PyGame糟糕的图像质量&渐变条带

时间:2014-03-13 23:19:55

标签: image pygame

我注意到,当显示jpg或png图像时,它们看起来很像GIF文件,因为颜色有限,而且#34;绑定"。

您可以看到原件和附件截图。有点难以说明缩小但你可以看到它。

Original Image Screen Shot

其实更好的例子。看看圈子周围的条带? Better example

这是我的代码:

#pygame code to render an image
import pygame, os
import time
image = 'gradient-test.png'  #located in same folder as this file:resized in Photoshop 
pygame.init()  #I assume you did this?
SCREEN = pygame.display.set_mode((1366, 768))
pygame.mouse.set_pos((1366, 768))
picture = pygame.image.load(image)
SCREEN.blit(picture,(0,0))
pygame.display.update()
time.sleep(5)

1 个答案:

答案 0 :(得分:0)

表面的像素格式似乎有问题。您可以在脚本中添加以下行,以查看图像表面的像素格式与屏幕表面之间是否存在差异:

print 'picture', picture.get_bitsize()
print 'screen', SCREEN.get_bitsize()

这是一种很好的做法,建议您通过调用convert()始终将任何新曲面的像素格式更改为屏幕表面的像素格式:

  

convert()

     

更改图像的像素格式   convert(Surface) -> Surface

     

创建一个新的Surface副本,其像素格式已更改...

     

如果没有传递参数,则新Surface将具有与显示Surface相同的像素格式。这总是最快的blitting格式。最好在将所有Surface多次blitting之前对其进行转换。

很简单:

picture = pygame.image.load(image).convert() # added convert() call

此外,您可以尝试手动设置屏幕的颜色深度,例如:

SCREEN = pygame.display.set_mode((1366, 768),0, 32) # use 32-bit color depth