首页/软件/ImageMagick

ImageMagick:免费开源的命令行图像处理套件 #

ImageMagick 是什么? #

ImageMagick 是一款免费、开源的图像处理软件套件,可通过命令行、脚本和编程接口完成数字图像的创建、编辑、合成与格式转换,支持 JPEG、PNG、GIF、TIFF、Ultra HDR 等 200 多种文件格式。

它由 C 语言编写,可运行于 Linux、Windows、macOS 等多种操作系统,既提供用于执行复杂图像处理任务的命令行界面(CLI),也提供可集成到软件应用中的 API。ImageMagick 被广泛应用于 Web 开发、平面设计、视频剪辑等领域,同时在科学研究、医学成像和天文学中也承担着重要的图像处理工作。对需要批量处理海量图片、或需要把图像处理流程自动化的用户而言,ImageMagick 能以脚本方式替代大量重复的手工操作,兼顾灵活性与执行效率。当前最新版本为 ImageMagick 7.1.2-34,官方同时维护 6.x 旧版分支并提供版本迁移指南。

ImageMagick 有哪些亮点特色? #

  • 格式覆盖极广:支持 JPEG、PNG、GIF、TIFF、Ultra HDR 等超过 200 种图像格式,可完成任意格式之间的转换(例如 PNG 转 JPEG),也能读写数字电影工业中常用的图像格式。
  • 脚本与自动化能力强:官网将“支持脚本与自动化”列为关键特性,用户可以把复杂的图像处理流程编写成可自动执行的管道,特别适合大批量图片处理或需要定期重复执行的任务。
  • 跨平台且接口完备:软件以 C 语言编写,可运行于 Linux、Windows、macOS,既提供命令行界面,也提供 API,便于把图像处理能力嵌入到自有软件系统中。
  • 图像处理能力全面:涵盖动画合成、色彩管理、图像合成叠放、绘制图形与文字、仿射与透视畸变校正、直方图均衡化、离散傅里叶变换、连通域标记、凸包计算、形态学分析、感知哈希、加解密图像等数十项专业功能。
  • 面向大图与高性能场景:支持读取、处理和写入百万级(mega)、十亿级(giga)乃至万亿像素(tera-pixel)的超大图像;多数内部算法并行执行,可自动利用多核处理器缩短运行时间;部分算法支持 OpenCL,可在 CPU、GPU 等异构平台上协同加速;还支持把中间像素缓存卸载到远程服务器。
  • 可定制的安全策略:官方强烈建议在使用前建立适配本地环境的安全策略,自 7.1.1-16 版本起提供 Open、Limited、Secure、Websafe 四种预设策略可供选择与自定义,并配套策略校验工具。
  • 持续的安全投入:官方近几个月修复了大量缓冲区溢出、策略绕过和注入风险问题,GitHub Advisory Database 中已列出数十条已关闭的安全公告,反映出项目防御能力的持续强化。
  • 免费开源、商用友好:ImageMagick 自 1990 年代初起免费提供,许可证允许个人、公司内部及商业用途使用,可自由链接、合并到其他许可的代码中,并与 GPL V3 兼容,仅要求再分发时保留许可副本与明确署名。

免费下载 ImageMagick #

以下为官方提供的各平台安装包,点击链接即可下载。Windows 用户建议选择带 HDRI 的 Q16 动态链接版本;Linux 用户可直接下载 AppImage 便携版,无需安装即可运行。

文件名 描述 大小 下载
ImageMagick-7.1.2-34-Q16-HDRI-x64-dll.exe Win64 动态链接版本,每像素分量 16 位,启用高动态范围成像(HDRI) 23.4 MB 夸克网盘
ImageMagick-7.1.2-34-clang-x86_64.AppImage Linux 完整便携应用(clang 构建),无需安装,下载即运行,采用开放安全策略 31.8 MB 夸克网盘
ImageMagick-7.1.2-34-gcc-x86_64.AppImage Linux 完整便携应用(gcc 构建),无需安装,下载即运行,采用开放安全策略 31.8 MB 夸克网盘

提示:Linux AppImage 版本内置的是开放安全策略,官方建议在本地路径(例如 ~/.config/ImageMagick/policy.xml)中添加自定义安全策略,并使用 ./magick -list policy 命令进行校验。

ImageMagick 如何使用? #

ImageMagick 的核心使用方式是“命令行 + 参数”,新手可按以下步骤快速上手:

  1. 完成安装并打开终端:Windows 用户安装完成后打开“命令提示符”或 PowerShell;macOS 与 Linux 用户直接打开“终端”。
  2. 验证软件是否可用:在命令行中依次输入官方提供的验证命令:
    magick logo: logo.gif
    magick identify logo.gif
    
    第一条命令会生成一张内置的示例 logo 图片,第二条命令会输出该图片的格式与属性信息,能正常输出即表示安装成功。
  3. 执行格式转换:使用 magick 加上输入文件与输出文件即可完成格式转换,例如把 PNG 转成 JPEG:
    magick input.png output.jpg
    
  4. 执行常用编辑操作:官网列出的 Transform 类操作包括缩放、旋转、纠偏、裁剪、翻转、修剪等,例如把图片缩放到指定尺寸:
    magick input.jpg -resize 800x600 output.jpg
    
  5. 组合成批量脚本:把多条 magick 命令写入 Shell 脚本或批处理文件,即可对成百上千张图片自动执行同一套处理流程(如统一加水印、改尺寸、转格式)。

需要注意:旧版命令 magick convert 已被标记为弃用,虽然仍可运行但会输出弃用警告,新脚本请统一使用 magick 作为入口命令。此外,ImageMagick 也提供 API,可将上述能力直接嵌入到自有程序中使用。

ImageMagick 的常见问题? #

Q1:convert 和 magick 有什么区别? magick convert 命令已在 ImageMagick 7 中弃用,虽然仍能运行,但会弹出弃用警告。官方推荐统一使用 magick 作为命令入口,例如用 magick input.png output.jpg 完成转换。

Q2:Windows 版本里的 Q8、Q16 和 HDRI 是什么意思?怎么选? 文件名中的 Q8 表示每像素分量 8 位,Q16 表示 16 位;Q16 可在读写 16 位图像时不丢失精度,但资源开销约为 Q8 的两倍。HDRI 表示启用高动态范围成像,能准确表达从最亮阳光到最暗阴影的宽广亮度范围。官方默认构建为 Q16 HDRI,若内存紧张,可选择 Q8 非 HDRI 版本以降低资源占用,代价是精度下降且无法处理超出范围的像素值。

Q3:使用前为什么需要配置安全策略? 官方强烈建议在本地环境中先建立适配的安全策略,再使用 ImageMagick。自 7.1.1-16 版本起,用户可从 Open、Limited、Secure、Websafe 四种策略中选择并自定义,配置完成后可用官方提供的校验工具或 ./magick -list policy 命令验证策略是否生效。

Q4:如何验证 ImageMagick 已经正确安装? 在命令行窗口输入 magick logo: logo.gif 和 magick identify logo.gif,若能生成示例图片并正确输出图像信息,说明安装与运行环境正常。

Q5:ImageMagick 可以用于商业项目吗? 可以。许可证允许个人、公司内部及商业用途免费下载和使用,也允许把 ImageMagick 用于你创建的软件包或发行版中;再分发时需要附带许可证副本并向 ImageMagick Studio LLC 提供明确署名,但不得暗示官方为你的发行版背书。

Q6:Linux 上只提供 AppImage 吗? 是的。官方目前把 AppImage 作为唯一预构建的 Linux 二进制分发包,若需要适配特定发行版的二进制或自定义编译选项,需要从源码自行编译。

ImageMagick 如何安装? #

Windows

  1. 下载 ImageMagick-7.1.2-34-Q16-HDRI-x64-dll.exe(64 位系统推荐)等自安装程序。
  2. 双击运行,安装向导会启动并询问若干安装选项,按提示完成即可。
  3. 也可通过包管理器安装,官方提供了 winget 命令:
    winget install ImageMagick.Q16-HDRI
    
    此外还可使用 ImageMagick.Q16、ImageMagick.Q8 等包标识,或通过 scoop、chocolatey 等非官方渠道安装。
  4. 系统要求:Windows 10(x86、x64、arm64)或更高版本,或 Windows Server 2012 或更高版本;建议至少 512 MB 内存,处理大图时内存越多越好。

macOS

  1. 官方推荐使用 Homebrew 安装:
    brew install imagemagick
    
  2. ImageMagick 依赖 Ghostscript 字体,需一并安装:
    brew install ghostscript
    
  3. 若需要包含更多委托库与编解码器(如通过 librsvg 支持 SVG、通过 libraw 支持 RAW、OpenMP、JPEG XL、Cairo 等)的版本,可安装官方 formula:
    brew install imagemagick-full
    
    注意 imagemagick-full 为 keg-only,其二进制不会自动链接到 PATH。
  4. 部分用户也可选择 MacPorts 作为替代方案。

Linux

  1. 下载对应架构的 AppImage 文件(clang 或 gcc 构建版本)。
  2. 赋予可执行权限后直接运行,无需安装:
    chmod +x ImageMagick-7.1.2-34-gcc-x86_64.AppImage
    ./ImageMagick-7.1.2-34-gcc-x86_64.AppImage -version
    
  3. 若需要适配特定发行版的二进制或自定义编译选项,请从源码编译安装。
  4. 安装后建议在 ~/.config/ImageMagick/policy.xml 中添加自定义安全策略,并用 ./magick -list policy 校验。

ImageMagick 如何卸载? #

Windows

  1. 打开“设置 → 应用 → 已安装的应用”(或“控制面板 → 程序和功能”)。
  2. 找到 ImageMagick 条目,点击“卸载”并按向导完成移除。
  3. 若通过 winget 安装,也可在命令行执行 winget uninstall ImageMagick.Q16-HDRI(对应你安装时的包标识)。
  4. 如需彻底清理,可手动删除残留的安装目录以及用户配置目录中的 ImageMagick 文件夹。

macOS

  1. 若通过 Homebrew 安装,执行:
    brew uninstall imagemagick
    
    若安装的是完整版,则执行 brew uninstall imagemagick-full。
  2. 如同时安装过 Ghostscript 且不再需要,可执行 brew uninstall ghostscript。
  3. 使用 MacPorts 安装的用户可执行 sudo port uninstall imagemagick。

Linux

  1. AppImage 版本为免安装的便携程序,直接删除对应的 .AppImage 文件即可完成卸载。
  2. 从源码编译安装的用户,可在源码目录中执行 make uninstall(若构建系统支持),或手动删除安装到 /usr/local 等路径下的相关文件。
  3. 建议一并清理用户级配置目录 ~/.config/ImageMagick/,其中可能包含自定义的 policy.xml 安全策略文件;如需保留策略配置,可在卸载前先行备份。
相关标签
ImageMagick图像处理软件命令行图像处理开源图片转换工具批量图片处理图片格式转换ImageMagick 下载图片批处理脚本跨平台图像处理套件