PIL, im.getdata () возвращает кортеж разных размеров - PullRequest
1 голос
/ 21 марта 2012

Иногда getdata () возвращает кортеж с четырьмя значениями, а иногда он возвращает кортеж только с тремя.Почему?

from PIL import Image
im = Image.open(some_image)
assert(len(im.getdata()[0]) == 4)

1 Ответ

1 голос
/ 27 марта 2012

Если изображение в режиме RGB, то первые три значения - это значения «R», «G» и «B» для изображения.Если он находится в режиме RGBA, то четвертое значение является альфа-значением.Вы можете проверить, в каком режиме находится изображение:

im.mode

Вы можете использовать .convert для переключения режима изображения.Например:

im.covert("RGBA")

Это изменит режим изображения на RGBA.Проверьте раздел Mode здесь для получения дополнительной информации о различных режимах, поддерживаемых PIL.

...