PIL vs Python-GD для обрезки и изменения размера - PullRequest
2 голосов
/ 13 октября 2009

Я создаю пользовательские изображения, которые позже конвертирую в пирамиду изображений для Seadragon AJAX. Изображения и изображения пирамиды создаются с использованием PIL. В настоящее время требуется несколько часов, чтобы сгенерировать изображения и пирамиду изображений приблизительно для 100 изображений, которые имеют общую ширину и высоту около 32 000 000 на 1000 (да, изображение очень длинное и узкое). Производительность примерно аналогична другому алгоритму, который я пробовал (то есть deepzoom.py ). Я планирую посмотреть, будет ли python-gd работать лучше из-за того, что большая часть его функциональности закодирована в C (из библиотеки GD). Я бы предположил значительное повышение производительности, однако мне любопытно услышать мнение других. В частности, изменение размера и кадрирование происходит медленно в PIL (w / Image.ANTIALIAS). Значительно ли это улучшится, если я использую Python-GD?

Заранее спасибо за комментарии и предложения.

РЕДАКТИРОВАТЬ: разница в производительности между PIL и python-GD кажется минимальным. Я проведу рефакторинг своего кода, чтобы уменьшить узкие места в производительности и включу поддержку нескольких процессоров. Я протестировал модуль многопроцессорной обработки Python. Результаты обнадеживают.

Ответы [ 2 ]

1 голос
/ 13 октября 2009

PIL в основном в C.

Сглаживание выполняется медленно. Что происходит со скоростью при отключении сглаживания?

0 голосов
/ 18 февраля 2015

VIPS включает в себя быстрый создатель с глубоким увеличением . Я рассчитал deepzoom.py и на своей машине вижу:

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

, где wtc.jpg - изображение RGB JPG с разрешением 10 000 x 10 000 пикселей, а 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 намного выше.

...