2015-03-03 31 views
3

我为训练数据生成CAPTCHA,并且已经有一个相当不错的ImageMagick脚本。在ImageMagick中旋转同一单词的单个字母

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

enter image description here

有一个简单的(或硬)的方式来做到这一点影响?

回答

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流,1个,并在年底,我使用+append将我在输入流中看到的所有内容连接在一起。

如果你想辗过字母靠得更近(TM),你只需前miff:-

enter image description here

+0

由于添加-trim +repage,我就用类似的方法。一些技巧,如果有人发现这一点,我使用-undercolor白色,使他们垂直排列适量,然后修剪。好答案! – pjreddie 2015-03-03 19:23:39

+0

@pjreddie:如果您在自己的答案中添加了最终使用的方法,那将会很不错。你究竟如何使用'-undercolor white'来垂直排列字母? – 2015-03-04 14:04:58

相关问题