关于 ImageMagick
ImageMagick 是一个强大的命令行工具,用于创建、编辑、合成和转换图像。支持广泛的图像格式,可通过脚本自动化处理。
主要功能
- 01批量调整图像大小和格式
- 02检查和提取图像元数据
- 03合成和叠加多个图像
适用场景
- 01自动化图像处理工作流程
- 02在构建脚本中转换媒体文件
- 03为 Agent 处理图像数据
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行magick --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
ImageMagick
ImageMagick® 是一套免费的开源软件,用于编辑和处理数字图像。它可用于创建、编辑、合成或转换位图图像,并支持多种文件格式,包括 JPEG、PNG、GIF、TIFF 和 PDF。
什么是 ImageMagick?
ImageMagick 广泛应用于 Web 开发、平面设计和视频编辑等行业,也用于科学研究、医学成像和天文学。它用途广泛且可定制,并具备强大的图像处理能力,因此成为处理各种图像相关任务的热门选择。
ImageMagick 包含一个用于执行复杂图像处理任务的命令行界面,以及可将其功能集成到软件应用中的 API。它使用 C 编写,可在多种操作系统上运行,包括 Linux、Windows 和 macOS。
ImageMagick 的官方网站位于 https://imagemagick.org。此软件的源代码可通过代码库获取。此外,我们还维护着 ImageMagick 的旧版版本 6。
强烈建议在使用 ImageMagick 前,制定一份适合您特定本地环境的安全策略。您可以在此处找到设置该策略的指南。此外,使用验证工具检查策略也很重要。
功能与能力
ImageMagick 的一项关键功能是支持脚本编写和自动化。这使用户能够创建复杂的图像处理流水线,并自动运行,无需手动干预。这对于需要处理大量图像的任务,或需要定期执行的任务尤其有用。
除了核心图像处理功能外,ImageMagick 还包含许多其他功能,例如动画、色彩管理和图像渲染支持。这些功能使其成为适用于各种图像相关任务的多用途工具,包括平面设计、科学可视化和数字艺术。
总的来说,ImageMagick 是一套功能强大、用途广泛的软件,可用于显示、转换和编辑图像文件。它支持脚本编写和自动化,并具备其他多种功能,因此是处理各种图像相关任务的实用工具。
以下仅列出 ImageMagick 能够实现的若干示例:
- 动画:非线性、保边缘并降噪的平滑滤镜。
- 双边模糊:非线性、保边缘并降噪的平滑滤镜。
- 色彩管理:使用色彩配置文件实现精准的色彩管理;或者根据色彩空间的需要,使用内置的伽马压缩或扩展。
- 颜色阈值处理:将颜色范围内的所有像素强制设为白色,其他像素设为黑色。
- 命令行处理:通过命令行使用 ImageMagick。
- 复杂文本布局:支持双向文本和文本整形。
- 合成:将一张图像叠加到另一张图像上。
- 连通分量标记:为图像中的连通区域分别标记唯一标签。
- 凸包:包含图像前景对象的最小面积凸多边形。此外,还会生成最小包围框和反旋转角度。
- 装饰:为图像添加边框或画框。
- 描绘图像特征:Canny 边缘检测、均值漂移、霍夫直线。
- 离散傅里叶变换:实现正向和逆向 DFT。
- 分布式像素缓存:将中间像素数据存储卸载到一个或多个远程服务。
- 绘制:向图像添加形状或文本。
- 图像加密或解密:将普通图像转换为无法辨认的乱码,再还原为原图。
- 格式转换:将图像从一种格式转换为另一种格式(例如,从 PNG 转换为 JPEG)。
- 广义像素畸变:校正或生成图像畸变,包括透视畸变。
- 异构分布式处理:某些算法支持 OpenCL,可利用 CPU、GPU 和其他处理器组成的异构平台协同执行所带来的加速效果。
- 高动态范围图像:准确呈现真实场景中的宽广亮度范围,从最明亮的直射阳光到最深暗的阴影。
- 直方图均衡化:使用自适应直方图均衡化改善图像对比度。
- 图像缓存:提供安全的方法和工具,可在本地文件夹中缓存图像、图像序列、视频、音频或元数据。
- 图像计算器:将数学表达式应用于图像或图像通道。
- 图像渐变:创建一种颜色的渐变混合,其形状可以是水平、垂直、圆形或椭圆形。
- 图像识别:描述图像的格式和属性。
- 在 iPhone 上使用 ImageMagick:在 iPhone 上转换、编辑或合成图像。
- 大图像支持:读取、处理或写入百万、十亿或万亿像素大小的图像。
- 蒙太奇:在图像画布上并列放置图像缩略图。
- 形状形态学:提取特征、描述形状并识别图像中的模式。
- 电影支持:读取和写入数字电影制作中常用的图像格式。
- 多光谱图像:支持最多 64 个波段的多光谱图像。
- 降噪与色彩还原:Kuwahara 滤镜、均值漂移。
- 感知哈希:将视觉上相同的图像映射为相同或相似的哈希值,可用于图像检索、身份验证、索引、副本检测以及数字水印。
- 特殊效果:对图像进行模糊、锐化、阈值处理或着色。
- 文本与注释:在图像中插入描述性或艺术性文本。
- 执行线程支持:ImageMagick 是线程安全的,大多数内部算法都支持 OpenMP,可利用多核处理器带来的加速效果。
- 变换:调整图像大小、旋转、校正倾斜、裁剪、翻转或修剪。
- 透明度:将图像的部分区域渲染为不可见。
- 虚拟像素支持:便捷地访问图像区域之外的像素。 ImageMagick 用法示例,展示了如何通过命令行使用该软件来实现各种效果。网站上还有一些名为 Fred's ImageMagick Scripts 的脚本,可用于应用几何变换、模糊和锐化图像、去除噪声以及执行其他操作。此外,还有一个名为 Magick.NET 的工具,用户无需在自己的系统上安装软件,即可使用 ImageMagick 的功能。最后,网站还提供了一个 Cookbook,其中包含在 Windows 系统上使用 ImageMagick 的技巧和示例。
新闻
强烈建议在使用 ImageMagick 之前,先创建适合特定本地环境的安全策略。您可以在此处找到有关设置此策略的指南。此外,请务必使用验证工具检查策略。从 ImageMagick 7.1.1-16 版起,您可以选择并自定义以下安全策略之一:Open、Limited、Secure 和 Websafe。
默认情况下,ImageMagick 最多支持 32 个通道。从 ImageMagick 7.1.1-16 版起,您可以通过在 Linux configure 构建脚本中添加 --enable-64bit-channel-masks 选项,启用最多 64 个通道。Windows 上则会自动启用此功能。
想让 ImageMagick 拥有更高的性能?试试以下选项:
如果这些选项成本过高,您可以降低图像结果的质量。默认构建版本为 Q16 HDRI。如果禁用 HDRI,内存使用量将减半;此外,您使用的将主要是通常效率更高的整数运算,而不是浮点运算。代价是精度降低,且无法处理超出范围的像素值(例如负值)。如果构建 Q8 非 HDRI 版本的 ImageMagick,内存需求会再次减半——代价是精度进一步降低,且同样无法处理超出范围的像素值。要构建 Q8 非 HDRI 版本的 ImageMagick,请使用以下 configure 脚本选项:--with-quantum-depth=8 --disable-hdri。