如何使用 ImageMagick 向我的 PNG 文件添加 Alpha 通道?
How Do I Add An Alpha Channel To My PNG Files Using ImageMagick?
我已经使用其他工具创建了几个 Mac 应用程序,我需要为其创建 Apple 图像。它们被创建为没有 alpha 通道的 PNG 文件,并存储在一个文件夹中。
我试图执行以下命令:
iconutil -c icons myfolder.iconset
我遇到如下多个错误:
iconutil error: Unsuported image format
阅读这篇 blog post 以及 Stack Overflow 上的几篇文章后,我发现我需要在我的图像上设置一个 alpha 通道。 Apple Developer 文档中没有说明这一点。
我尝试为此使用预览,但根据我所做的研究,包括观看几个视频,我必须删除一种颜色,这会弄乱我的图标,尤其是较小的图标。我的图标有一个黑色背景,试图去除它们上面的小白点对于较小的图标来说将是一场噩梦。
David Grayson 在 this link 上发表评论说 ImageMagick 可用于添加 alpha 通道。评论说如果我对每个应该工作的 png 文件执行以下命令。
convert old_icon_16x16.png -define png:color-type=6 icon_16x16.png
然而,当我执行此操作时,出现以下错误:
Abort trap: 6
然后我转到 ImageMagick 主要网站引用的 link 以获取示例。我尝试了以下命令。
convert old_icon_16x16.png -alpha off -alpha on icon_16x16.png
我收到以下错误:
Abort trap: 6
我不知道从这里到哪里去。
如果您得到 Abort
或 Segmentation Faults
,这表明您的 ImageMagick 的 compiling/building/linking 不匹配。
我建议您删除所有已安装的 ImageMagick,然后使用 homebrew
重新开始,这是在 OSX 上安装 ImageMagick 的最简单方法。基本上,您转到 Homebrew website 并将单行代码复制并粘贴到终端中进行安装(我不想在此处显示该行,以防它将来发生变化并且已过时)。
一旦你安装了自制软件,这只是一个问题:
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 ...
正如 Glenn 在评论中指出的那样,比您正在使用的命令更简单的命令可能是:
convert old_icon_16x16.png png32:icon_16x16.png
另外,请注意 convert
从版本 7 开始变为 magick
- 虽然 homebrew
目前仍在提供版本 6。
我已经使用其他工具创建了几个 Mac 应用程序,我需要为其创建 Apple 图像。它们被创建为没有 alpha 通道的 PNG 文件,并存储在一个文件夹中。
我试图执行以下命令:
iconutil -c icons myfolder.iconset
我遇到如下多个错误:
iconutil error: Unsuported image format
阅读这篇 blog post 以及 Stack Overflow 上的几篇文章后,我发现我需要在我的图像上设置一个 alpha 通道。 Apple Developer 文档中没有说明这一点。
我尝试为此使用预览,但根据我所做的研究,包括观看几个视频,我必须删除一种颜色,这会弄乱我的图标,尤其是较小的图标。我的图标有一个黑色背景,试图去除它们上面的小白点对于较小的图标来说将是一场噩梦。
David Grayson 在 this link 上发表评论说 ImageMagick 可用于添加 alpha 通道。评论说如果我对每个应该工作的 png 文件执行以下命令。
convert old_icon_16x16.png -define png:color-type=6 icon_16x16.png
然而,当我执行此操作时,出现以下错误:
Abort trap: 6
然后我转到 ImageMagick 主要网站引用的 link 以获取示例。我尝试了以下命令。
convert old_icon_16x16.png -alpha off -alpha on icon_16x16.png
我收到以下错误:
Abort trap: 6
我不知道从这里到哪里去。
如果您得到 Abort
或 Segmentation Faults
,这表明您的 ImageMagick 的 compiling/building/linking 不匹配。
我建议您删除所有已安装的 ImageMagick,然后使用 homebrew
重新开始,这是在 OSX 上安装 ImageMagick 的最简单方法。基本上,您转到 Homebrew website 并将单行代码复制并粘贴到终端中进行安装(我不想在此处显示该行,以防它将来发生变化并且已过时)。
一旦你安装了自制软件,这只是一个问题:
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 ...
正如 Glenn 在评论中指出的那样,比您正在使用的命令更简单的命令可能是:
convert old_icon_16x16.png png32:icon_16x16.png
另外,请注意 convert
从版本 7 开始变为 magick
- 虽然 homebrew
目前仍在提供版本 6。