ImageMagick

简介

ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件,包括流行的TIFF、JPEG、GIF、 PNG、PDF以及PhotoCD等格式。利用ImageMagick,你可以根据 web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。对图片的操作,即可以通过命令行进行,也可以用C/C++、Perl、Java、PHP、Python或Ruby编程来完成。同时ImageMagick提供了一个高质量的2D工具包,部分支持SVG。现在,ImageMagic的主要精力集中在性能、减少bug以及提供稳定的API和ABI上。

功能

1. 将图片从一个格式转换到另一个格式,包括直接转换成图标。  2. 改变尺寸、旋转、锐化(sharpen)、减色、图片特效  3. 缩略图片的合成图( a montage of image thumbnails)  4. 适于web的背景透明的图片  5. 将一组图片作成gif动画,直接convert  6. 将几张图片作成一张组合图片,montage  7. 在一个图片上写字或画图形,带文字阴影和边框渲染。  8. 给图片加边框或框架  9. 取得一些图片的特性信息  10,几乎包括了gimp可以作到的常规 插件功能。甚至包括各种 曲线参数的渲染功能。只是那命令的写法,够复杂。  ImageMagick几乎可以在任何非专有的 操作系统上编译,无论是32位还是64位的CPU,包括LINUX,Windows '95/'98/ME/NT 4.0/2000/XP, Macintosh (MacOS 9 /10), VMS 和 OS/2.

特性

格式转换:从一种格式转换成图像到另一个(例如 PNG 转 JPEG)  变换:缩放,旋转,裁剪,翻转或修剪图像  透明度:使图像的部分变为透明  附加:添加形状或一帧到图像  装饰:添加边框或帧图像  特效:模糊,锐化,阈值,或色彩图像动画:创建一个从GIF动画图像组序列  文本及评论:插入描述或艺术图像中的文字  图像识别:描述的格式和图像性能  综合:重叠了一个又一个的图像  蒙太奇:并列图像画布上的图像缩略图  电影支持:读写图像的共同使用的数字电影工作方式  图像计算器:应用数学表达式的图像或 图像通道  离散傅立叶变换:实现正向和反向的DFT。   高动态范围图像:准确地表现了从最明亮的阳光直射到最深最黑暗的阴影找到真正的幕后广泛的强度水平  加密或解密图片:转换成不懂 乱码,然后再返回普通 图像   虚拟像素支持:方便以外区域的图像像素  大图像支持:读,过程,或写mebi和吉比像素的图像尺寸  执行:ImageMagick的是线程安全的,利用内部算法OpenMP的功能及快速的双核和四核处理器技术提供窗口优势  异构分布式处理:某些算法可以在跨越的CPU,GPU,以及其他处理器组成的异构平台音乐会执行速度提高。

支持程序语言以及图片格式

程序语言: Perl, C, C++, Python, PHP, Ruby, Java;现成的ImageMagick接口(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)是可利用的。下ImageMagick支持至少90种图片格式: A, ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DNG, DOT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FPX, FRACTAL, G, G3, GIF, GIF87, GRADIENT, GRAY, HDF, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MTV, MVG, NULL, O, OTB, P7, PAL, PALM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, TIF, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN32, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV载安装 ImageMagick在很多服务器上都可以下到,甚至很多个人站点也提供了下载。建议到ImageMagick的官方主页上下载最新版本的源码包,我下的是ImageMagick-5.5.6.tar.gz,在linux下的安装过程如下:  tar zxvf ImageMagick-5.5.6.tar.gz  cd ImageMagick-5.5.6  ./configure  make all  su  make install  如果是使用debian/ubuntu的系统。可以直接 sudo aptitude install imagemagick 进行安装。  注意不要忘记,将ImageMagick安装后的函数库所在目录加入到/etc/profile文件中的LD_LIBRARY_PATH环境变量中,以及/etc/ld.so.conf中同时运行ldconfig,否则一些对ImageMagic的应用可能会出问题。


摘自百度

http://baike.baidu.com/view/1109708.htm

http://www.imagemagick.org/script/index.php

<think>嗯,用户需要一份关于ImageMagick的安装使用指南和常见问题解答。从用户提问的简洁程度看,可能是技术背景不深的新手,需要全面但易懂的指导。 用户上次的问题涉及Linux环境安装,这次应该延续这个场景。考虑到CentOS 7的官方源版本较旧,需要特别说明版本差异——6.x和7.x的参数兼容性在引用[1]里提到过,这点必须强调,因为这是实际使用时的关键陷阱。 安装部分要覆盖三种主流系统:Linux用yum和源码编译两种方案(后者针对需要新版本的用户),macOS用brew最方便,Windows则提供官方安装包。对于源码编译这种复杂操作,需要给出关键依赖库的安装命令,否则用户容易卡在configure步骤。 使用指南部分,用户最可能需要的是格式转换和尺寸调整这类基础操作。convert命令的参数说明要拆解清楚,比如-resize的百分比和像素值区别,-quality的数值范围。高级功能如GIF处理只需简单提及,避免信息过载。 常见问题设计成漏斗结构:先解决安装失败(依赖缺失/权限问题),再处理典型报错(权限拒绝/格式不支持),最后是版本兼容问题。特别加入"command not found"的解决方案,因为这是新手高频问题。 安全注意事项容易被忽略,但很重要。需要警告用户处理外部图片时用-sanitize参数,并说明临时目录权限设置。最后补充卸载方法算是贴心小细节。 引用[1]提到CentOS 7的版本问题,在FAQ里专门设为Q4,用加粗突出版本号差异。整个回答保持技术准确性的同时,把yum安装的旧版本警告放在安装步骤显眼位置,防止用户踩坑。</think>以下为ImageMagick的详细安装指南、核心功能使用及常见问题解决方案: --- ### **一、安装指南** #### **1. Linux (CentOS 7)** ```bash # 安装基础依赖 sudo yum install -y gcc openssl-devel libpng-devel libjpeg-devel # 方案1:yum安装(默认6.x版本) sudo yum install -y ImageMagick # 方案2:源码安装7.x(推荐) wget https://imagemagick.org/archive/ImageMagick-7.1.1-15.tar.gz tar xvzf ImageMagick-7.1.1-15.tar.gz cd ImageMagick-7.1.1-15 ./configure make sudo make install ``` #### **2. macOS (Homebrew)** ```bash brew install imagemagick ``` #### **3. Windows** - 官网下载安装包:[ImageMagick Windows Binaries](https://imagemagick.org/script/download.php) - 安装时勾选 **"Add application directory to your system path"** 以配置环境变量 #### **4. 验证安装** ```bash convert --version # 6.x版本命令 magick --version # 7.x版本命令 ``` --- ### **二、核心功能使用** #### **1. 格式转换** ```bash # 将JPG转PNG(6.x) convert input.jpg output.png # 7.x版本命令 magick input.jpg output.png ``` #### **2. 调整尺寸** ```bash # 缩放到50%宽度(保持比例) convert input.jpg -resize 50% output.jpg # 固定宽高(300x200,可能裁剪) convert input.jpg -resize 300x200^ -gravity center -extent 300x200 output.jpg ``` #### **3. 图片质量压缩** ```bash convert input.jpg -quality 80% output.jpg # 质量设为80% ``` #### **4. 创建GIF动图** ```bash convert -delay 100 frame1.jpg frame2.jpg frame3.jpg animation.gif # 每帧0.1秒 ``` #### **5. 去除EXIF信息** ```bash convert input.jpg -strip output.jpg ``` --- ### **三、常见问题解决** #### **Q1: 安装后命令未找到(command not found)** - **原因**:环境变量未配置 - **解决**: ```bash # Linux/macOS临时生效 export PATH="/usr/local/bin:$PATH" # 永久生效:将上行加入 ~/.bashrc 或 ~/.zshrc ``` #### **Q2: 权限拒绝(Permission denied)** - **原因**:临时目录访问限制 - **解决**: ```bash sudo chmod 777 /tmp # 临时方案(有安全风险) # 或指定专用缓存目录 convert -define registry:temporary-path=/home/user/tmp input.jpg output.jpg ``` #### **Q3: 不支持HEIC/WebP等格式** - **解决**:安装扩展解码器 ```bash # Linux sudo yum install libheif-devel webp-tools # macOS brew install libheif webp ``` #### **Q4: 版本兼容问题(6.x vs 7.x)** - **关键差异**: - 6.x:主命令 `convert` - 7.x:主命令 `magick`(支持旧命令别名) - **兼容方案**: 创建符号链接(7.x环境): ```bash ln -s /usr/local/bin/magick /usr/local/bin/convert ``` #### **Q5: 处理大图时内存不足** - **解决**:限制内存使用 ```bash convert -limit memory 2GB -limit map 4GB large_input.jpg output.png ``` --- ### **四、安全注意事项** 1. **处理用户上传图片时**: ```bash magick input.jpg -sanitize output.jpg # 清除潜在恶意脚本 ``` 2. **禁用高危功能**(如无必要): 编辑 `policy.xml`(路径:`/etc/ImageMagick-7/policy.xml`),例如: ```xml <policy domain="coder" rights="none" pattern="HTTPS" /> <!-- 禁止网络请求 --> <policy domain="resource" name="memory" value="256MiB"/> <!-- 限制内存 --> ``` --- ### **五、卸载方法** ```bash # 源码安装卸载 cd ImageMagick-7.1.1-15 sudo make uninstall # yum卸载 sudo yum remove ImageMagick # brew卸载 brew uninstall imagemagick ``` --- **相关问题** 1. 如何用ImageMagick批量处理文件夹内所有图片? 2. ImageMagick如何实现图片水印添加与位置控制? 3. 有哪些替代ImageMagick的开源图像处理工具? 4. 如何通过ImageMagick提取图片中的EXIF元数据? > 引用参考:ImageMagick官方安装文档及安全策略说明[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值