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

时间:2015-03-03 04:55:16

标签: imagemagick captcha

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

然而,我真正想要的一件事是单词的单个字母稍微旋转,例如参见此reCAPTCHA:

enter image description here

有一种简单(或很难)的方法来实现这种效果吗?

1 个答案:

答案 0 :(得分:2)

我认为你需要这个:

#!/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

enter image description here

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

如果您想更紧密地拼写字母(TM),您可以在-trim +repage之前添加miff:-

enter image description here