Python: применение цветового профиля sRGB и альфа-канала к изображению - PullRequest
0 голосов
/ 25 апреля 2018

У меня возникли проблемы при попытке сохранить изображение в формате png с помощью sRGB и альфа-канала.Сначала я обрезаю изображение, а затем сохраняю его следующим образом:

from PIL import Image
import cv2

inputPath = 'picture.png'
img = cv2.imread(inputPath)

crop_img = img[bounds[3]:bounds[2], bounds[1]:bounds[0]]
pth = name + ".png"
crop_img.save(pth)

Тем не менее создается файл, подобный следующему:

Я хочу, чтобы файл был таким, как это:

Как я могу получить этот результат в Python?

PS Исходное изображениедействительно имеет альфа-канал и цветовой профиль sRGB.

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 25 апреля 2018

Вы можете прочитать ваше изображение следующим образом.Он загрузит ваше изображение как таковое, включая альфа-канал.

img = cv2.imread(inputPath,-1)

ОБНОВЛЕНИЕ

Следующий код эквивалентен приведенному выше ответу, поскольку cv2.IMREAD_UNCHANGED=-1 в документация .Хотя приведенный выше фрагмент кода решает проблему, его использование не является хорошей практикой программирования, поскольку оно не дает представления о том, что на самом деле делает -1.Но следующий фрагмент кода дает четкое представление о поведении кода.

img = cv2.imread(input,cv2.IMREAD_UNCHANGED)
...