Задача: у меня есть входной png-файл (многие на самом деле, но я просто зациклил решение).Это 16x16 PNG, 32 бита с частичной прозрачностью по краям.
Так получилось, что панели инструментов определенной тупой платформы требуется 17x17 файлов.Моя проблема в том, что imagemagick убивает прозрачность при выполнении простых преобразований.
Итак: проверка работоспособности:
convert add.png PNG32:add_COPIED.png
создает еще один файл 16x16 @ 32bpp.Пока все хорошо.
Преобразование (гравитация в порядке):
convert add.png -extent 17x17 PNG32:add_17.png
создает файл со сплошным белым фоном.Это не хорошо.
Что не работает:
Я пробовал серьезное количество комбинаций прозрачного, прозрачного цвета, фона, альфы и сглаживания.Никуда не попал.
Что работает:
convert address_book.png -alpha Extract address_book_MASK.png
convert address_book.png -extent 17x17 PNG32:address_book_17.png
convert address_book_MASK.png -background black -extent 17x17 address_book_MASK17.png
composite -compose CopyOpacity address_book_MASK17.png address_book_17.png PNG32:address_book_FIN.png
Хотя у меня есть рабочий набор команд, и я могу пройти весь день, я искренне верю, что это неправильный путьчтобы сделать вещи - четыре команды, которые создают 3 промежуточных файла, которые мне нужно удалить позже.Наверняка это можно сделать лучше?