ImageMagick:驾驭命令,重塑图像,挥洒自如的图形处理大师!- 精选真开源,释放新价值。

image

概览

在用户端,我们可借助如 PhotoShop 等图形用户界面(GUI)软件,对静态图片或动态 GIF 进行精细化编辑与修饰,其直观的操作界面赋予了用户随心所欲塑造视觉艺术的可能。然而,当这些图像处理需求移至服务器端,尤其在复杂的 WEB 应用程序中,涉及到图片格式转换、尺寸调整、裁剪、翻转、扭曲、PDF解析等诸多任务时,GUI 软件便显得捉襟见肘,难以胜任云端环境下的自动化与批量处理要求。

此时,ImageMagick 作为一款强大的命令行工具,以其专业而高效的特性,成为服务器端图像处理的理想之选。它不仅涵盖了从创建到编辑,再到合成与转换的全方位图像操作能力,而且支持的格式种类逾越两百大关,广泛吸纳了诸如 PNG、JPEG、GIF、HEIC、TIFF、DPX、EXR、WebP、Postscript、PDF、SVG 等主流与专业格式,展现出无与伦比的兼容性与包容力。

ImageMagick 的功能深度与广度同样令人瞩目。它不仅能精准地调整图像的各个维度,轻松实现翻转、镜像、旋转、扭曲等空间变换,以毫厘不差的精度进行修剪与裁切;还能细腻地调控色彩空间,无论是明暗对比的微调,还是色调饱和度的重塑,皆能游刃有余。

此外,ImageMagick 还能将文本、线条、多边形、椭圆乃至贝塞尔曲线等矢量元素优雅地融入图像之中,这一特性使其在生成动态图表、制作数据可视化报告,乃至构建交互式网页元素等方面大放异彩。

截至发稿概况如下:

语言占比
C46.8%
HTML32.8%
C++12.6%
Makefile3.5%
XS1.3%
Shell1.2%
Other1.8%
  • 收藏数量:K

主要功能

源码安装:

# 安装 ImageMagick
$ wget https://www.imagemagick.org/download/ImageMagick.tar.gz
$ tar zvxf ImageMagick.tar.gz
$ cd ImageMagick-7.0.10-23
$ ./configure --prefix=/data/software/imagemagick-7.0.10-23
$ make
$ make install

conda安装:

$ conda search imagemagick
$ conda create -n imagemagick imagemagick

常用命令

获取图片信息

#显示简略图片信息
identify /path/to/image.png

#显示详细图片信息
identify -verbose /path/to/image.png

缩放图片

#缩放到指定大小
convert /path/to/source.png -resize 200x200 /path/to/target.png

#按百分比缩放
convert /path/to/source.png -resize 50% /path/to/target.png

#多次缩放(本例是缩小再放大,效果就是变模糊了,可用于做马赛克)
convert /path/to/source.png -resize 50% -resize 200% /path/to/target.png

#只缩放宽,高按比例(省略高不写即可,但“x”号还是要写的)
convert /path/to/source.png -resize 200x /path/to/target.png

#只缩放高,宽按比例(省略宽不写即可,但“x”号还是要写的)
convert /path/to/source.png -resize x200 /path/to/target.png

#批量把iPhone拍的照片缩小成指定尺寸
declare -i j=0;for i in *.JPG; do convert $i -resize 1008x ${i:0:$[${#i}-4]}_resized.jpg;j=j+1;echo $j"."$i" convert succeed"!; done

设置jpg图片质量、

convert input.jpg -quality 90 output.jpg

旋转图片

convert input.jpg -rotate 90 output.jpg

image

image

镜像图片

# 水平翻转,就是我们平时说的镜像
convert input.jpg -flop output.jpg

# 垂直翻转,这个一般比较少用
convert input.jpg -flip output.jpg

裁剪图片

#从(50,50)坐标开始,裁剪一个100⨉100大小的图片(乘号用小写英文字母xyz的x就可以)
convert image.png -crop 100x100+50+50 crop.png

#不指定位置,则会把大图片分割成100⨉100的小图片,生成crop-0.png, crop-1.png, ……
convert image.png -crop 100x100 crop.png

遐想

ImageMagick 以其深厚的专业功底、丰富多样的功能集、广泛兼容的格式支持以及灵活便捷的命令行操作,为服务器端的 WEB 应用程序提供了强大且全面的图像处理解决方案。无论是基础的格式转换与尺寸调整,还是进阶的特效应用与矢量元素融合,它都能从容应对。

热烈欢迎各位在评论区分享交流心得与见解!!!


声明:本文为辣码甄源原创,转载请标注"辣码甄源原创首发__"__并附带原文链接。


辣码甄源
13 声望20 粉丝

开源软件综合服务商,为开源人员提供可持续发展通道、为学习人员提供便捷学习渠道、为企业方提供开源定制化落地方案,发现、助力、合作、共赢开源好项目