Skip to content

Python 製作縮圖 (Pillow/PIL)

Pillow (PIL Fork) 10.4.0 documentation

Usage:

Read image and make thumbnails
thumb = Image.open(img)
thumb.thumbnail(i[1] , Image.LANCZOS)
# thumb = thumb.convert('RGB')
thumb.save(target_path, "JPEG")
thumb.close()

演算法可以參考下圖。 Compare Filters

screenshot via: Filters

Pillow-SIMD

Uploadcare提供了SIMD加速的Pillow: uploadcare/pillow-simd: The friendly PIL fork

Benchmark測試 Pillow Performance

Linux

CPU: Intel Celeron N4505 2.0GHz

安裝libjpeg-dev, zlib1g-dev後,安裝pillow-simd才會成功。但執行python出現illegal hardware instruction的錯誤訊息。

Linux
# install requirements
sudo apt install libjpeg-dev zlib1g-dev

# install pillow-simd
CC="cc -mavx2" pip install -U --force-reinstall pillow-simd

MacOS

MacBook Pro: 3.1GHz Intel Core i7

用brew安裝jpeg後,安裝pillow-simd成功,執行也沒問題。

MacOS
# install requirements
brew install jpeg
# install pillow-simd
pip install pillow-simd

總結

速度有比較快,希望有空來做benchmark。