大图像显示比PyGame快吗?

问题描述

| 我正在使用PyGame来显示图像(照片)。对于较大的图像尺寸,加载和转换过程较慢(例如,对于6000x4485尺寸的图像,要花费2-3秒)。慢的实际代码是:
image = pg.image.load(fname).convert()
是否有其他库或方法可以提供更好的性能?我的目标平台是Windows7和OS X,我可以为每个平台使用单独的解决方案(尽管使用单个解决方案会更好)。     

解决方法

        如果您的jpeg库支持,则可以设置缩放参数。如果您在屏幕上显示它,可能不需要6kx4k的输出图像,并且可以将其速度提高几倍。 http://jpegclub.org/djpeg/     ,        您可以尝试使用PyTurboJPEG,它是libjpeg-turbo的Python包装器,具有惊人的快速重新缩放(1 / 2、1 / 4、1 / 8),同时可以解码大型JPEG图像,如下所示,
import pygame
from turbojpeg import TurboJPEG

# specifying library path explicitly
# jpeg = TurboJPEG(r\'D:\\turbojpeg.dll\')
# jpeg = TurboJPEG(\'/usr/lib64/libturbojpeg.so\')
# jpeg = TurboJPEG(\'/usr/local/lib/libturbojpeg.dylib\')

# using default library installation
jpeg = TurboJPEG()

# direct rescaling 1/2 while decoding input.jpg to RGBA pixel array
pixel_array = jpeg.decode(
    open(\'input.jpg\',\'rb\').read(),pixel_format=TJPF_RGBA,scaling_factor=(1,2))
height,width,_ = pixel_array.shape
image = pygame.image.frombuffer(pixel_array.data,(width,height),\'RGBA\')
此处还提供了适用于macOS和Windows 7的libjpeg-turbo预制二进制文件。     ,        您可能会在PyGame上使用TkInter或GTK +这样的GUI库来获得更好的运气。如果您需要使用游戏库,您可能会喜欢PyGlet。对于PyGame,有人说这可以加快速度:comments.gmane.org/gmane.comp.python.pygame/9015。您也可以按照libjpeg-turbo.virtualgl.org上的评论中所述检查libjpeg-turbo。但是,就像我说的那样,使用GUI库或将整个内容移植到C / C ++以避免多语言调用可能会更好。祝好运!