In case anyone's planning to thumbnail some PNGs and JPEGs in Python, whether you use PyQt, PyOpenCV, or write your own little wrapper around Rust's `image` crate using PyO3 or rust-cpython, I recommend not using Pillow.
On my test corpus with a warmed cache, the others consistently took about 2/3rds the time Pillow did... though PyOpenCV was a hair slower than the others at ~25 seconds rather than ~23. (Pillow was ~33.)
@ssokolow Huh and I always though that it's particularly easy to use some shell script and ImageMagick...