Можно ли уменьшить глубину изображения с помощью PIL? Скажем, как переход на 4bpp от обычного 8bpp.
Вы можете легко конвертировать режимы изображения (просто вызовите im.convert(newmode) для объекта изображения im, это даст вам новое изображение нового требуемого режима), но для "4bpp" нет режима; поддерживаемые режимы перечислены здесь в Справочник по библиотеке изображений Python .
im.convert(newmode)
im
Это можно сделать с помощью функции changeColorDepth в модуле ufp.image . только эта функция может уменьшить глубину цвета (bpp)
import ufp.image import PIL im = PIL.Image.open('test.png') ufp.image.changeColorDepth(im, 16) # change to 4bpp(this function change original PIL.Image object) im.save('changed.png')
см. Пример: квантование изображения по улучшенной шкале серого. [Python]