No arquivo simple_captcha_image.rb basta alterar o método generate_simple_captcha_image para que na criação da imagem seja colocado o fundo desejado. Veja o exemplo de código abaixo:
def generate_simple_captcha_image(options={}) #:nodoc
fundo = Magick::Image.read(url_da_imagem_de_fundo).first
preenchimento = Magick::TextureFill.new(fundo)
@image = Magick::Image.new(197, 45, preenchimento) do
self.format = 'JPG'
end
# ...
Repare que existe ali uma chamada ao método url_da_imagem_de_fundo que no caso é um método que pega o path de uma imagem aleatória. Dessa forma o captcha poderá ter vários fundos diferentes. Veja um exemplo de como pode ser a implementação desse método:
def url_da_imagem_de_fundo
"#{RAILS_ROOT}/vendor/plugins/simple_captcha/assets/imgs/picture_" + (rand(9)+1).to_s + ".jpg"
end
Foi preciso também comentar a chamada ao método que aplica estilo e distorção à imagem, mas não sei bem se isso é necessário. Como fiz isso, precisei alterar o método append_simple_captcha_code que escreve o texto na imagem, de forma a utilizar diversos tamanhos, posições e fontes diferentes.
Muito bom! Nada como um projeto rails novo para aparecerem posts com dicas úteis.
ResponderExcluirEi os posts anteriores são muito úteis também. E não havia projeto em rails.
ResponderExcluiracho que devemos evitar captcha o máximo possível... já deu uma olhada neste post?
ResponderExcluirhttp://blog.areacriacoes.com.br/2008/10/25/solucionando-spam-com-captcha-inverso