ImageMagick/ImageMagick

GitHub: ImageMagick/ImageMagick

一款功能强大的开源图像处理套件,支持200多种格式,提供命令行工具和API,可实现图像的创建、编辑、转换、合成等全流程自动化处理。

Stars: 15833 | Forks: 1550

# ImageMagick [![构建状态](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5cdaffda3b155024.svg)](https://github.com/ImageMagick/ImageMagick/actions) [![Fuzzing 状态](https://oss-fuzz-build-logs.storage.googleapis.com/badges/imagemagick.svg)](https://issues.oss-fuzz.com/issues?q=%22project%20ImageMagick%22) [![捐赠](https://img.shields.io/badge/%24-donate-ff00ff.svg)](https://github.com/sponsors/ImageMagick)

ImageMagick logo

[ImageMagick®](https://imagemagick.org/) 是一个免费的[开源](https://imagemagick.org/license/)软件套件,用于编辑和处理数字图像。它可以用于创建、编辑、合成或转换位图图像,并支持多种文件[格式](https://imagemagick.org/script/formats.php),包括 JPEG、PNG、GIF、TIFF 和 PDF。 ## 什么是 ImageMagick? ImageMagick 广泛应用于 Web 开发、平面设计和视频编辑等行业,以及科学研究、医学影像和天文学领域。其通用且可定制的特性,加上强大的图像处理能力,使其成为各种图像相关任务的热门选择。 ImageMagick 包含一个用于执行复杂图像处理任务的命令行界面,以及用于将其功能集成到软件应用程序中的 API。它使用 C 语言编写,可以在多种操作系统上使用,包括 Linux、Windows 和 macOS。 ImageMagick 的主网站位于 [https://imagemagick.org](https://imagemagick.org/)。该软件的源代码可以通过[仓库](https://github.com/ImageMagick/ImageMagick)访问。此外,我们还维护 ImageMagick [版本 6](https://legacy.imagemagick.org/) 的旧版本。 强烈建议在使用 ImageMagick 之前创建一个适合您特定本地环境的安全策略。您可以找到有关设置此[策略](https://imagemagick.org/script/security-policy.php)的指南。此外,使用[验证工具](https://imagemagick.org/script/security-policy.php)验证您的策略也很重要。 ## 功能与能力 ImageMagick 的关键特性之一是其对脚本和自动化的支持。这允许用户创建可以自动运行的复杂图像处理管道,无需人工干预。这对于需要处理大量图像的任务或需要定期执行的任务特别有用。 除了核心的图像处理能力外,ImageMagick 还包括许多其他功能,例如对动画、色彩管理和图像渲染的支持。这些功能使其成为各种图像相关任务的多功能工具,包括平面设计、科学可视化和数字艺术。 总的来说,ImageMagick 是一个用于显示、转换和编辑图像文件的强大且通用的软件套件。其对脚本和自动化的支持以及其他功能,使其成为各种图像相关任务的宝贵工具。 以下是 ImageMagick 能做到的几个[示例](https://imagemagick.org/script/examples.php): * [动画](https://imagemagick.org/script/command-line-options.php#bilateral-blur):非线性、保边和降噪平滑滤波器。 * [双边模糊](https://imagemagick.org/script/command-line-options.php#bilateral-blur):非线性、保边和降噪平滑滤波器。 * [色彩管理](https://imagemagick.org/script/color-management.php):使用色彩配置文件进行精确的色彩管理,或者根据色彩空间的要求进行内置的 gamma 压缩或扩展。 * [颜色阈值处理](https://imagemagick.org/script/color-management.php) 将颜色范围内的所有像素强制变为白色,否则变为黑色。 * [命令行处理](https://imagemagick.org/script/command-line-processing.php) 从命令行使用 ImageMagick。 * [复杂文本布局](https://en.wikipedia.org/wiki/Complex_text_layout) 双向文本支持和字形调整。 * [合成](https://imagemagick.org/script/composite.php):将一张图像重叠在另一张图像上。 * [连通分量标记](https://imagemagick.org/script/connected-components.php):唯一地标记图像中的连通区域。 * [凸包](https://imagemagick.org/script/convex-hull.php) 包含图像前景对象的最小面积凸多边形。此外,还会生成最小边界框和反向旋转角度。 * [装饰](https://imagemagick.org/Usage/crop/):为图像添加边框或框架。 * [描绘图像特征](https://imagemagick.org/Usage/transform/#vision):Canny 边缘检测、均值漂移、Hough 线。 * [离散傅里叶变换](https://imagemagick.org/Usage/fourier/):实现正向和逆向 [DFT](http://en.wikipedia.org/wiki/Discrete_Fourier_transform)。 * [分布式像素缓存](https://imagemagick.org/script/distribute-pixel-cache.php):将中间像素存储卸载到一个或多个远程服务器。 * [绘制](https://imagemagick.org/Usage/draw/):向图像添加形状或文本。 * [加密或解密图像](https://imagemagick.org/script/cipher.php):将普通图像转换为无法识别的乱码,并可反向转换。 * [格式转换](https://imagemagick.org/script/convert.php):将图像从一种[格式](https://imagemagick.org/script/formats.php)转换为另一种(例如 PNG 转 JPEG)。 * [广义像素畸变](https://imagemagick.org/Usage/distorts/):校正或引入图像畸变,包括透视畸变。 * [异构分布式处理](https://imagemagick.org/script/architecture.php#distributed):某些算法启用了 OpenCL,以利用由 CPU、GPU 和其他处理器组成的异构平台上协同执行所带来的加速优势。 * [高动态范围图像](https://imagemagick.org/script/high-dynamic-range.php):精确表示真实场景中从最亮直射阳光到最深最暗阴影的广泛强度级别。 * [直方图均衡化](https://imagemagick.org/script/clahe.php) 使用自适应直方图均衡化来改善图像对比度。 * [图像缓存](https://imagemagick.org/script/magick-cache.php):将图像、图像序列、视频、音频或元数据缓存到本地文件夹的安全方法和工具。 * [图像计算器](https://imagemagick.org/script/fx.php):将数学表达式应用于图像或图像通道。 * [图像渐变](https://imagemagick.org/script/gradient.php):创建一种颜色的逐渐混合,其形状为水平、垂直、圆形或椭圆形。 * [图像识别](https://imagemagick.org/script/identify.php):描述图像的格式和属性。 * [iPhone 上的 ImageMagick](https://imagemagick.org/script/download.php#iOS):在您的 iPhone 上转换、编辑或合成图像。 * [大图像支持](https://imagemagick.org/script/architecture.php#tera-pixel):读取、处理或写入百万、十亿或万亿像素大小的图像。 * [蒙太奇](https://imagemagick.org/script/montage.php):将图像缩略图并置在图像画布上。 * [形状形态学](https://imagemagick.org/Usage/morphology/):提取特征、描述形状并识别图像中的模式。 * [电影支持](https://imagemagick.org/script/motion-picture.php):读取和写入数字电影工作中常用的图像格式。 * [多光谱图像](https://imagemagick.org/script/multispectral-imagery.php):支持多达 64 个波段的多光谱图像。 * [噪点和颜色缩减](https://imagemagick.org/Usage/transform/#vision) Kuwahara 滤波器、均值漂移。 * [感知哈希](http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html):将视觉上相同的图像映射到相同或相似的哈希值——适用于图像检索、认证、索引或复制检测以及数字水印。 * [特效](https://imagemagick.org/Usage/blur/):模糊、锐化、阈值处理或给图像着色。 * [文本和注释](https://imagemagick.org/Usage/text/):在图像中插入描述性或艺术性文本。 * [执行线程支持](https://imagemagick.org/script/architecture.php#threads):ImageMagick 是线程安全的,大多数内部算法都启用了 OpenMP,以利用多核处理器芯片提供的加速优势。 * [变换](https://imagemagick.org/Usage/resize/):调整大小、旋转、纠偏、裁剪、翻转或修剪图像。 * [透明度](https://imagemagick.org/Usage/masking/):使图像的某些部分不可见。 * [虚拟像素支持](https://imagemagick.org/script/architecture.php#virtual-pixels):方便地访问图像区域之外的像素。 [ImageMagick 使用示例](https://imagemagick.org/Usage/),演示了如何从[命令行](https://imagemagick.org/script/command-line-processing.php)使用该软件来实现各种效果。网站上还有几个名为 [Fred's ImageMagick Scripts](http://www.fmwconcepts.com/imagemagick/) 的脚本,可用于应用几何变换、模糊和锐化图像、去除噪点以及执行其他操作。此外,还有一个名为 [Magick.NET](https://github.com/dlemstra/Magick.NET) 的工具,允许用户访问 ImageMagick 的功能而无需在其自己的系统上安装该软件。最后,该网站还包括一个[Cookbook](http://im.snibgo.com/),其中包含在 Windows 系统上使用 ImageMagick 的提示和示例。 ## 新闻 强烈建议在使用 ImageMagick 之前创建一个适合您特定本地环境的安全策略。您可以找到有关设置此[策略](https://imagemagick.org/script/security-policy.php)的指南。此外,使用[验证工具](https://imagemagick-secevaluator.doyensec.com/)验证您的策略也很重要。从 ImageMagick 版本 7.1.1-16 开始,您可以选择并自定义以下[安全策略](https://imagemagick.org/script/security-policy.php)之一:Open、Limited、Secure 和 Websafe。 默认情况下,ImageMagick 支持最多 32 个通道。从 ImageMagick 版本 7.1.1-16 开始,您可以通过向 Linux 配置构建脚本添加 **--enable-64bit-channel-masks** 选项来启用最多 64 个通道。对于 Windows,这将自动启用。 想要 ImageMagick 提供更高的性能?尝试以下选项: * 为您的系统添加更多内存,请参阅[像素缓存](https://imagemagick.org/script/architecture.php#cache); * 为您的系统添加更多核心,请参阅[执行线程支持](https://imagemagick.org/script/architecture.php#threads); * 使用 [tcmalloc](http://goog-perftools.sourceforge.net/doc/tcmalloc.html) 内存分配库减少锁争用; * 将大型图像推送到固态硬盘,请参阅[大图像支持](https://imagemagick.org/script/architecture.php#tera-pixel)。 如果这些选项受限,您可以降低图像结果的质量。默认构建是 Q16 HDRI。如果您禁用 [HDRI](https://imagemagick.org/script/high-dynamic-range.php),您的内存使用量将减半,并且通常使用效率更高的整数运算,而不是以浮点运算为主。权衡之处在于精度降低,并且您无法处理超出范围的像素值(例如负值)。如果您构建 Q8 非 HDRI 版本的 ImageMagick,您将再次将内存需求减半——但这同样需要权衡,精度更低且没有超出范围的像素值。对于 Q8 非 HDRI 构建的 ImageMagick,请使用以下配置脚本选项:**--with-quantum-depth=8 --disable-hdri**。
标签:GIF, ImageMagick, JPEG, PDF, PNG, SVG, Syscall, TIFF, Veh, Web开发, 位图, 医学影像, 图像处理, 图像处理库, 图形设计, 图片加水印, 图片压缩, 图片旋转, 图片编辑, 图片裁剪, 多媒体工具, 天文图像, 客户端加密, 客户端加密, 批量处理, 数字取证, 数字图像, 文档结构分析, 服务端图像处理, 格式转换, 缩略图生成, 网络信息收集, 自动化脚本, 色彩管理