Pra corrigir as letras vai ser um pouco complicado. Eu tentaria traçar uma curva com os pontos inferiores (ou médio talvez) das letras e deslocaria os pixels igual feito no filtro de bandeira.
]]>obrigado!
]]>Porque o método setRGB recebe uma matriz unidimensional (array int[]) e não uma matriz bidimensional.
http://docs.oracle.com/javase/6/docs/api/java/awt/image/BufferedImage.html#setRGB%28int,%20int,%20int,%20int,%20int%5B%5D,%20int,%20int%29
Você pode verificar pelo método como acessar o valor do pixel da matriz RGB utilizando as posições x e y.
pixel = rgbArray[offset + (y-startY)*scansize + (x-startX)];
Esse foi o único motivo dessa conversão… Poderia ter trabalhado direto com o array unidmensional, para otimizar o uso da variável, mas acho mais fácil trabalhar com a matriz bidimensional, mas como o parâmetro do método setRGB não aceita, tive que realizar a conversão.
]]>Eu não entendi bem, porque você colocou uma matriz unidimensional recebendo uma matriz bidimensional.
resultImage[j * (transform2Matrix.length) + i] = transform2Matrix[i][j];
Obrigado.
]]>É um objeto do tipo java.awt.Image.
Você pode criá-lo utilizando o código descrito nessa post: http://www.thiagovespa.com.br/blog/2010/09/26/quebrando-captchas/
]]>O que é este ci da linha ci.getImage()?
Abraço. Obrigado.
]]>