使用ImageMagick快速生成带文字的图片
发文章经常需要一些图片。我以前都是在Mac上用Keynote输入文字转成PNG生成简单的图片。虽然Keynote很好用但步骤还是比较繁琐,因此我演讲了使用ImageMagic生成:
convert -size 1280x720 xc:skyblue \-pointsize 120 -gravity center \-font "/Users/seven/Library/Fonts/NotoSansCJK-Bold.ttc" \-fill white -stroke navy \-draw "text 0,0 '你好'" \a.png
生成的图片如下:

其中:
-size: 图片大小xc:color:背景色,skyblue是天蓝色,还可以是white、black等-pointsize:字体大小,像素gravity center:居中-fill:字体颜色,填充色stroke:画笔颜色,边框色-font:字体,我使用了Google的Noto Sans字体draw:文本,其中0,0表示坐标偏移量
为了给文字加是阴影,可以画两次,如:
convert -size 1280x720 xc:skyblue \-fill black -stroke black -blur 3 \-pointsize 120 -gravity center \-font "/Users/seven/Library/Fonts/NotoSansCJK-Bold.ttc" \-draw "text 3,3 '你好'" \-fill white -stroke navy \-draw "text 0,0 '你好'" \b.png
效果如下:

这样就可以方便地生成很多不同的图片。
为了方便使用,我将上述代码放到一个Shell脚本中,随时使用:
#!/bin/bashtext=$1
out=$2convert -size 1280x720 xc:skyblue \-fill black -stroke black -blur 2 \-pointsize 120 -gravity center \-font "/Users/seven/Library/Fonts/NotoSansCJK-Bold.ttc" \-draw "text 3,3 '$1'" \-fill white -stroke navy \-draw "text 0,0 '$1'" \$out
用的时候只要在命令行上打上makeimg “你好” a.png就好了。如果需要改变颜色和文字大小就多写几个不同的Shell脚本或者修改上述脚本多加几个参数。
顺便说一下,如果格式换成webp最终图片文件会小很多,可以对比下:
$ /tmp ls -l b.*
-rw-r--r--@ 1 seven wheel 45837 Feb 5 08:44 b.png
-rw-r--r-- 1 seven wheel 6966 Feb 5 08:51 b.webp
这样,我每次写文章时,就简单生成一个图片。等什么时候美工有空了,就会帮我画个更好看的。
比如下面的文章最初就使用了下面的图片:

http://freeswitch.org.cn/blog/2023/02/rfc3261/
SIP协议 RFC3261
祝玩得开心。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
