convert
跳转到导航
跳转到搜索
命令行上的图像处理。如果要修改原图片,可以考虑 mogrify 命令。
参数
-auto-orient
- 根据 EXIF 信息旋转图片并重置 EXIF 中的方向信息
-border geometry
- 加边框。
geometry
如4x4
-bordercolor color
- 设定边框颜色
-crop geometry
- 剪裁。参数如
400x32+0+0
。如果不给出偏移,会产生一堆图片。 -density value
- 指定渲染时的解析度(单个数值或者widthxheight)。默认单位为 dpi。在转换矢量图为点阵图时很有用
-extent geometry
- 改变图片大小。原图的放置受 gravity 的影响
-font
- 指定字体,如
文泉驿正黑
。字体名可使用-list font
参数列出。 -fuzz distance[%]
- 颜色阈值
-gravity direction
- 影响后续操作的方向,
direction
可为东南西北中 -list font
- 列出所有可用字体。ImageMagick 使用的字体名称与 fontconfig 的不一样,比如空格变成了连字符。
-trim
- 剪裁图像,与图片边框颜色相同的地方会被剪裁掉。
-strip
- 删除图像的 EXIF、注释等辅助信息。
示例用法
ico -> png
convert firefox.ico[0] firefox.png
pdf -> png
convert -density 150x150 test.pdf -alpha off -density 150x150 %0003d.png
QR码 -> png
使用 zint 来生成 QR码,但是使用 convert 命令以便取得指定大小的图像:
zint -b 58 --binary --directsvg -d http://blog.lilydjwg.me/ | convert -density 600 -resize 128x128 - output.png
转换成grub所用的格式
未测试。[1]
convert -resize 640x480 -colors 14 wallpaper.png splashimage.xpm && gzip splashimage.xpm
convert slax.png -resize 640x480 -colors 14 -depth 8 splash.xpm
添加阴影
convert - \( +clone -background black -shadow 80x10+5+5 \) +swap -background white -layers merge +repage png:-
手撕纸张效果
#!/bin/bash
src=xxx
dst=yyy
convert "$src" \( +clone -threshold -1 -virtual-pixel black -spread 10 -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 \) +matte -compose Copy_Opacity -composite "$dst"
mogrify "$dst" \( +clone -background black -shadow 80x3+5+5 \) +swap -background none -mosaic +repage
文本相关
给图片(下方)添加文本附注[3]:
convert test.png -font 文泉驿正黑 -pointsize 30 -background white label:附注文本 -gravity center -append t.png
生成马赛克
convert -size 32x32 xc: +noise Random -scale 512x512\! mosaic.png
添加圆角
r=$3
convert "$1" \
\( +clone -alpha extract \
-draw "fill black polygon 0,0 0,$r $r,0 fill white circle $r,$r $r,0" \
\( +clone -flip \) -compose Multiply -composite \
\( +clone -flop \) -compose Multiply -composite \
\) -alpha off -compose CopyOpacity -composite "$2"
添加水印并调整
convert source.png watermark.png -gravity southeast -compose dissolve -define compose:args=50 -composite -resize 200x200 -interlace PNG output.png
另见 composite。
连接图片
convert -background transparent -gravity center -append "$@"
添加文字并连接图片
convert -font 'DejaVu-Serif' \
\( JhengHei.png -pointsize 20 label:'Microsoft JhengHei' -gravity SouthEast -compose dissolve -composite \) \
\( Source.png -pointsize 20 label:'Source Han Sans TW' -gravity SouthEast -compose dissolve -composite \) \
-append result.png
效果如下:
填充到指定大小
缩小原图,以透明填充,原图在左边:
convert -resize 40x40 in.png -gravity west -background transparent -extent 512x40 out.png
去除透明
convert -background white -alpha remove a.png b.png
添加透明
convert a.png -fuzz 50% -transparent white b.png
截图然后灰度显示
import png:- | convert - -grayscale Rec709Luma - | display -
转换为指定调色盘的像素画
# 从已有图片生成调色盘
convert a.png -colors 8 -unique-colors colors.png
# 转换图片
convert -resize 5% -scale 2000% +dither -remap colors.png -type Palette source.png dest.png
只保留指定颜色并显示
convert image.jpg -matte \( +clone -fuzz 15% -transparent '#20B44B' \) -compose DstOut -composite -background black -alpha remove png:- | display -
模糊图片时处理好 gamma
将模糊操作放在调整 gamma 的操作中间即可:
convert input.png -gamma .45455 -blur 4x4 -gamma 2.2 output.png
隐写数据到图片
convert -depth 8 yt_dl1.png rgb:yt_dl1.part
convert -depth 8 yt_dl2.png rgb:yt_dl2.part
cat yt_dl1.part yt_dl2.part > yt_dl-2020.9.20.tar.gz
参见
外部链接
- 几个效果的脚本
- ImageMagick命令行使用方法 - 进出自由,我的分享
- graphics - Simulate a scanned paper - TeX - LaTeX Stack Exchange
- 生成验证码
参考资料
- ↑ 用convert命令转xpm的颜色问题 | 七星庐
- ↑ shutter插件手撕纸张(文件名
sptornedpaper
) - ↑ Annotating -- IM v6 Examples
- ↑ ruby on rails - Rounding corners of pictures with ImageMagick - Stack Overflow
- ↑ imagemagick - Replace transparency in PNG images with white background - Stack Overflow
- ↑ replace white with transparency - ImageMagick
- ↑ ░ 𝕔𝕒𝕥 /𝕕𝕖𝕧/𝕤𝕡𝕠𝕠𝕜𝕪 ░ on Twitter