#python #imagemagick #wand
#python #imagemagick #wand
Вопрос:
Следующий код генерирует ошибку.
#!/usr/bin/env python
import collections.abc
from wand.image import Image, COMPOSITE_OPERATORS, DISTORTION_METHODS, CHANNELS
from wand.drawing import Drawing
wand_imageText = Image(width=1080,
height=1080,
background='rgb(0,0,0,0)')
with Drawing() as draw:
draw.font = 'Impact'
draw.font_size = 100
draw.gravity = 'north_west'
draw.fill_color = 'rgb(255, 255, 255, 255)'
draw.text(0, 0, "Let's rock!")
draw(wand_imageText)
wand_imageText.trim(color='rgb(0,0,0,0)',fuzz=0)
wand_imageText.save(filename='C:\Temp\Wand_trim_test.jpg')
wand_imageText.close()
Файл «C:Program FilesPython37libsite-packageswandimage.py «, строка 865, в завернутом
результат = файл функции (self, * args, ** kwargs) «C:Program FilesPython37libsite-packageswandimage.py «, строка 4444, в trim
с цветом или self[0, 0] в качестве цвета: ошибка атрибута: введите
Есть ли способ обрезать прозрачность с помощью Wand?
Комментарии:
1. Попробуйте использовать
rgba
вwand_imageText.trim(color='rgba(0,0,0,0)',fuzz=0)
. Также используйтеrgba
вdraw.fill_color = 'rgba(255, 255, 255, 255)'
Именно так определяются прозрачные цвета в ImageMagick. Извините, я не знаю Python Wand. Но я предполагаю, что он будет использовать тот же синтаксис, что и ImageMagick. Видишь docs.wand-py.org/en/0.5.1/wand/color.html2. Использование rgba () не работает. Он по-прежнему выдает ту же ошибку.
3. Извините, я не знаю Wand. Но опубликовали ли вы свой полный код? Я не вижу связи сообщения об ошибке с тем, что вы закодировали. Вы добавили
rgba
во все места, включаяbackground='rgba(0,0,0,0)'
4. Да, это полный код. Это функция trim, которая генерирует ошибку. Я везде использовал rgba ().
5. Поддерживает ли ImageMagick обрезку по альфа-значению?
Ответ №1:
Я выяснил, что я делал неправильно.
Аргументом color функции trim должно быть значение wand.color.Цветной объект для работы функции.
Следующий код, который использует предложение fmw42 об использовании rgba(), выполняет обрезку с использованием альфа-значения.
from wand.color import Color
wand_imageText.trim(color=Color('rgba(0,0,0,0)'),fuzz=0)