Skip to content

Commit

Permalink
popping characters captcha: don't show prev char for the first char
Browse files Browse the repository at this point in the history
Signed-off-by: hrj <[email protected]>
  • Loading branch information
hrj committed Apr 24, 2021
1 parent e3241ff commit 1a41724
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/main/java/lc/captchas/PoppingCharactersCaptcha.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,12 @@ private byte[] gifCaptcha(final String text) {
final var prevColor = Color.getHSBColor(0f, 0f, 0.1f);
IntStream.range(0, text.length()).forEach(i -> {
final var color = Color.getHSBColor(HelperFunctions.randomNumber(0, 100)/100.0f, 0.6f, 1.0f);
final var prevI = (i - 1 + text.length()) % text.length();
final var nextImage = makeImage((g) -> {
g.setColor(prevColor);
g.drawString(String.valueOf(text.charAt(prevI)), advances[prevI] + jitter(), 45 + jitter());
if (i > 0) {
final var prevI = (i - 1) % text.length();
g.setColor(prevColor);
g.drawString(String.valueOf(text.charAt(prevI)), advances[prevI] + jitter(), 45 + jitter());
}
g.setColor(color);
g.drawString(String.valueOf(text.charAt(i)), advances[i] + jitter(), 45 + jitter());
});
Expand Down

0 comments on commit 1a41724

Please sign in to comment.