Как добавить альфа-канал в мои файлы PNG с помощью ImageMagick?
У меня уже есть несколько приложений для Mac, созданных с помощью другого инструмента, для которого мне нужно создавать образы Apple. Они были созданы в формате PNG без альфа-канала и сохранены в папке.
Я попытался сделать следующую команду:
iconutil -c icons myfolder.iconset
Я получил несколько ошибок, как показано ниже:
iconutil error: Unsuported image format
Прочитав этот пост вместе с парой постов о переполнении стека, я понял, что мне нужно иметь альфа-канал на своих изображениях. Это не указано в документации Apple Developer.
Я попытался использовать Preview для этого, но из проведенного мною исследования, включая просмотр нескольких видео, мне пришлось бы удалить цвет, который испортил бы мои значки, особенно меньшие. Мои значки имеют черный фон, и попытка удалить то, что на них мало белого, станет кошмаром для маленьких значков.
На эту ссылку есть комментарий Дэвида Грейсона, в котором говорится, что ImageMagick может быть использован для добавления альфа-канала. В комментарии говорилось, что если я выполню следующую команду для каждого png-файла, который должен работать.
convert old_icon_16x16.png -define png:color-type=6 icon_16x16.png
Однако, когда я выполняю это, я получаю следующую ошибку:
Abort trap: 6
Затем я пошел по этой ссылке, на которую ссылается основной сайт ImageMagick для примеров. Я попробовал следующую команду.
convert old_icon_16x16.png -alpha off -alpha on icon_16x16.png
Я получил следующую ошибку:
Abort trap: 6
Я не уверен, куда идти отсюда.
1 ответ
Если вы получаете Abort
или же Segmentation Faults
Это попахивает несоответствием в компиляции / сборке / компоновке вашего ImageMagick.
Я бы посоветовал вам удалить все, что вы установили из ImageMagick, и начать заново с homebrew
что является самым простым способом установки ImageMagick на OSX. По сути, вы заходите на сайт Homebrew, копируете и вставляете однострочник в терминал, чтобы установить его (я не хочу показывать здесь строку в случае, если она изменится в будущем, и это устареет).
После того, как вы установили homebrew, это всего лишь вопрос:
brew install imagemagick
Если вы хотите увидеть варианты поддержки X11, TIFF, fftw и т. Д., Просто запустите:
brew options imagemagick
Выход
--with-fftw
Compile with FFTW support
--with-fontconfig
Build with fontconfig support
--with-ghostscript
Build with ghostscript support
--with-hdri
Compile with HDRI support
--with-jp2
Compile with Jpeg2000 support
--with-liblqr
Build with liblqr support
--with-librsvg
Build with librsvg support
--with-libwmf
Build with libwmf support
--with-little-cms
Build with little-cms support
--with-little-cms2
Build with little-cms2 support
--with-openexr
Build with openexr support
--with-openmp
Compile with OpenMP support
--with-pango
Build with pango support
--with-perl
enable build/install of PerlMagick
--with-quantum-depth-16
Compile with a quantum depth of 16 bit
--with-quantum-depth-32
Compile with a quantum depth of 32 bit
--with-quantum-depth-8
Compile with a quantum depth of 8 bit
--with-webp
Build with webp support
--with-x11
Build with x11 support
--without-freetype
Build without freetype support
--without-jpeg
Build without jpeg support
--without-libpng
Build without libpng support
--without-libtiff
Build without libtiff support
--without-magick-plus-plus
disable build/install of Magick++
--without-opencl
Disable OpenCL
--HEAD
Install HEAD version
Тогда вы можете сделать:
brew install imagemagick --with-hdri --with-librsvg
или, если вы уже установили ImageMagick, вы можете изменить установленные параметры с помощью:
brew reinstall imagemagick --with-x11 ...
Как отмечает Гленн в комментариях, более простая команда, чем та, которую вы используете, вероятно:
convert old_icon_16x16.png png32:icon_16x16.png
Также обратите внимание, что convert
становится magick
начиная с версии 7 - хотя homebrew
все еще поставляет версию 6 в данный момент.