Сборка прозрачного GIF с ошибками подушек [закрыто]Python

Программы на Python
Ответить
Anonymous
 Сборка прозрачного GIF с ошибками подушек [закрыто]

Сообщение Anonymous »

Я пытаюсь создать простое приложение, которое получает радиолокационные изображения от NOAA, а затем объединяет их в изображение для отображения. Я никогда раньше не использовал библиотеку PILLOW, но у меня есть некоторый опыт работы с Python.

Изображения представляют собой файлы GIF и имеют прозрачные части. Вы можете увидеть примеры изображений по URL-адресам в моем коде ниже. У меня есть белый фон и наложение, созданное из нескольких наложений с их сайта в виде одного прозрачного изображения на моем компьютере.

Вот мой текущий код:

Код: Выделить всё

from PIL import Image
import urllib.request
urllib.request.urlretrieve('http://radar.weather.gov/ridge/Warnings/Short/EWX_Warnings_0.gif', 'warnings_now.gif')
urllib.request.urlretrieve('http://radar.weather.gov/ridge/RadarImg/N0R/EWX_N0R_0.gif', 'radar_now.gif')
radar = Image.open('radar_now.gif')
warnings = Image.open('warnings_now.gif')
background = Image.open('Background.gif')
overlay = Image.open('Overlay.gif')
background.paste(radar, (0,0), radar)
background.paste(overlay, (0,0), overlay)
background.paste(warnings, (0,0), warnings)
background.save('radar_final.gif', 'GIF')
Я читал во многих местах, как здесь, так и на других сайтах, что для правильного размещения прозрачных изображений нужно выполнить image_name.paste(transparent_image, (0,0), Transparent_image) и что, используя третий параметр, PIL будет интерпретировать альфа-канал прозрачного_изображения как маску. Однако всякий раз, когда я запускаю это, я получаю следующую ошибку вместо получения изображения в качестве вывода.

Код: Выделить всё

Traceback (most recent call last):
File "radar2.py", line 9, in 
background.paste(radar, (0,0), radar)
File "/usr/lib64/python3.3/site-packages/PIL/Image.py", line 1314, in paste
self.im.paste(im, box, mask.im)
ValueError: bad transparency mask
Я повсюду искал решение и нашел только решения для аналогичной ошибки, возникающей с изображениями PNG, где они были преобразованы в режим RGBA. Когда я попробовал это со своими изображениями, я получил идентичную ошибку (за исключением номеров строк). Я не ожидал, что это сработает, поскольку читал, что изображения GIF доступны только в режимах P или L.

Это все изображения в режиме P, и все они имеют один альфа-слой. Я также попытался отделить альфа-слой, чтобы использовать его в качестве маски, но это также привело к ошибке ValueError: неверная маска прозрачности.

Кажется, я не могу найти много информации о прозрачных изображениях GIF и подушке. Постоянно всплывает одна вещь, связанная с преобразованием в PNG, но решения для нее не кажутся актуальными.

Спасибо за любую помощь!

Примечание: это на 64-битной системе Gentoo Linux под управлением Python 3.3 и самой последней версии Pillow в репозиториях Gentoo.

Подробнее здесь: https://stackoverflow.com/questions/304 ... low-errors
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»