在 ImageMagick 中旋转同一个单词的单个字母

Rotate individual letters of the same word in ImageMagick

我正在为训练数据生成验证码,并且我已经有了一个非常好的 ImageMagick 脚本。

但是,我真正想要的是稍微旋转单词的各个字母,例如,请参见 reCAPTCHA:

有没有简单(或困难)的方法来实现这种效果?

我想你需要这个:

#!/bin/bash
word="theId"
for (( i=0 ; i<${#word} ; i++ )) ; do
   rotation=$(((RANDOM%10)*4))           # Generate random rotation for each letter
   convert -background none -virtual-pixel none -pointsize 72 label:"${word:i:1}" +distort SRT $rotation miff:-
done | convert -background none - +append result.png

基本上我一次创建和旋转一个字母并将它们写入一个 MIFF 流,一个接一个,最后,我使用 +append 将所有内容连接在一起我在输入流上看到了。

如果你想把字母挤在一起 (TM) 你可以在miff:-

之前加上-trim +repage