【发布时间】:2018-01-13 20:45:08
【问题描述】:
我正在使用 PyGame 显示图像(照片)。对于较大的图像尺寸,加载和转换过程很慢(例如,尺寸为 6000x4485 的图像需要 2-3 秒)。慢的实际代码是:
image = pg.image.load(fname).convert()
是否有其他库或方法可以提供更好的性能?我的目标平台是 windows7 和 os x,我可以为每个平台提供单独的解决方案(尽管单个解决方案会更好)。
【问题讨论】:
-
我认为您无法获得更好的性能。大部分时间可能需要加载和解码图像。那是 C 代码 (jpeglib)。请记住,解压后大小为 77 Mb 的图像。根据应用程序,您可以通过在后台预加载或其他方式“作弊”。
-
我很确定 picasa 和内置的 windows 查看器都能更快地显示相同的图像。我看看能不能计时。
-
检查stackoverflow.com/q/1594319/718209。他们特别提到了 libjpeg-turbo,它是 libjpeg 的替代品。
-
libjpeg-turbo 看起来很有前途(尽管编译起来有点麻烦)。在 7560x5600 jpg 文件上计时执行 djpeg 时,我比标准 libjpeg 提高了 3 倍。
-
如果您的应用程序不需要以全分辨率显示图像(即您没有在图像的一小部分上全屏缩放),那么 27 兆像素可能是多余的。您可以一次(离线或在后台任务中)将图像预处理为更小的图像(大约 1K x 1K),然后在您的应用中加载较小的版本。
标签: python image image-processing pygame