2

我正在创建自定义图像,然后将其转换为 Seadragon AJAX 的图像金字塔。图像和图像金字塔是使用 PIL 创建的。目前需要几个小时才能为大约 100 张图片生成图像和图像金字塔,这些图片的组合宽度和高度约为 32,000,000 x 1000(是的,图像很长很窄)。性能大致类似于我尝试过的另一种算法(即deepzoom.py)。我计划看看 python-gd 是否会表现得更好,因为它的大部分功能都是用 C 编码的(来自 GD 库)。我会假设性能会显着提高,但是我很想听听其他人的意见。特别是在 PIL(w/Image.ANTIALIAS)中,调整大小和裁剪速度很慢。如果我使用 Python-GD,这会显着改善吗?

提前感谢您的意见和建议。

编辑: PIL 和 python-GD 之间的性能差异似乎很小。我将重构我的代码以减少性能瓶颈并包括对多处理器的支持。我已经测试了 python 'multiprocessing' 模块。结果令人鼓舞。

4

2 回答 2

1

PIL 主要是在 C 中。

抗锯齿很慢。当你关闭抗锯齿时,速度会发生什么变化?

于 2009-10-13T01:22:18.123 回答
0

VIPS 包括一个快速的 deepzoom 创建器。我计时deepzoom.py并在我的机器上看到:

$ time ./wtc.py 
real    0m29.601s
user    0m29.158s
sys     0m0.408s
peak RES 450mb

其中wtc.jpg是 10,000 x 10,000 像素的 RGB JPG 图像,并且wtc.py正在使用这些设置

VIPS 大约快三倍,需要四分之一的内存:

$ time vips dzsave wtc.jpg wtc --overlap 2 --tile-size 128 --suffix .png[compression=0]
real    0m10.819s
user    0m37.084s
sys     0m15.314s
peak RES 100mb

我不确定为什么 sys 这么高。

于 2015-02-18T13:57:01.860 回答