diff --git a/src/main/java/lc/captchas/FontFunCaptcha.java b/src/main/java/lc/captchas/FontFunCaptcha.java index 1007078..be09485 100644 --- a/src/main/java/lc/captchas/FontFunCaptcha.java +++ b/src/main/java/lc/captchas/FontFunCaptcha.java @@ -1,6 +1,5 @@ package lc.captchas; -import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; @@ -10,6 +9,7 @@ import java.util.Map; import java.util.List; import lc.captchas.interfaces.Challenge; import lc.captchas.interfaces.ChallengeProvider; +import lc.misc.DPISetter; import lc.misc.HelperFunctions; public class FontFunCaptcha implements ChallengeProvider { @@ -74,7 +74,8 @@ public class FontFunCaptcha implements ChallengeProvider { graphics2D.dispose(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { - ImageIO.write(img, "png", baos); + DPISetter dpi = new DPISetter(); + dpi.setDPI(baos, img); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/lc/captchas/ShadowTextCaptcha.java b/src/main/java/lc/captchas/ShadowTextCaptcha.java index b510b9a..16f2b54 100644 --- a/src/main/java/lc/captchas/ShadowTextCaptcha.java +++ b/src/main/java/lc/captchas/ShadowTextCaptcha.java @@ -1,6 +1,5 @@ package lc.captchas; -import javax.imageio.ImageIO; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Color; @@ -14,6 +13,7 @@ import java.util.Map; import java.util.List; import lc.misc.HelperFunctions; +import lc.misc.DPISetter; import lc.captchas.interfaces.Challenge; import lc.captchas.interfaces.ChallengeProvider; @@ -67,7 +67,8 @@ public class ShadowTextCaptcha implements ChallengeProvider { g2d.dispose(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { - ImageIO.write(img2, "png", baos); + DPISetter dpi = new DPISetter(); + dpi.setDPI(baos, img2); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/scala/lc/captchas/DebugCaptcha.scala b/src/main/scala/lc/captchas/DebugCaptcha.scala index 787b6cf..5a0f0f1 100644 --- a/src/main/scala/lc/captchas/DebugCaptcha.scala +++ b/src/main/scala/lc/captchas/DebugCaptcha.scala @@ -1,6 +1,5 @@ package lc.captchas -import javax.imageio.ImageIO import java.awt.Color import java.awt.Font import java.awt.font.TextLayout @@ -12,6 +11,7 @@ import java.util.List import lc.misc.HelperFunctions import lc.captchas.interfaces.Challenge import lc.captchas.interfaces.ChallengeProvider +import lc.misc.DPISetter /** This captcha is only for debugging purposes. It creates very simple captchas that are deliberately easy to solve with OCR engines */ class DebugCaptcha extends ChallengeProvider { @@ -53,7 +53,8 @@ class DebugCaptcha extends ChallengeProvider { graphics2D.dispose() val baos = new ByteArrayOutputStream() try { - ImageIO.write(img, "png", baos) + val dpi = new DPISetter(); + dpi.setDPI(baos, img); } catch { case e: Exception => e.printStackTrace() diff --git a/src/main/scala/lc/captchas/LabelCaptcha.scala b/src/main/scala/lc/captchas/LabelCaptcha.scala index cd008e7..7b85e06 100644 --- a/src/main/scala/lc/captchas/LabelCaptcha.scala +++ b/src/main/scala/lc/captchas/LabelCaptcha.scala @@ -10,6 +10,7 @@ import java.awt.Color import lc.captchas.interfaces.ChallengeProvider import lc.captchas.interfaces.Challenge import java.util.{List => JavaList, Map => JavaMap} +import lc.misc.DPISetter class LabelCaptcha extends ChallengeProvider { private var knownFiles = new File("known").list.toList @@ -49,7 +50,8 @@ class LabelCaptcha extends ChallengeProvider { val token = encrypt(knownImageFile + "," + unknownImageFile) val baos = new ByteArrayOutputStream() - ImageIO.write(mergedImage, "png", baos) + val dpi = new DPISetter(); + dpi.setDPI(baos, mergedImage); new Challenge(baos.toByteArray(), "image/png", token) }