1
我正在使用Java进行验证码的过程,但我无法改进文本质量,“drawString”方法在我的图像上生成。文质的提高“drawString”方法的文本质量
例子:
实际上,你可以看到文字的可怕边缘。
Java代码:在PHP中使用同一种字体的
File file = new File("C:\\captcha.png");
File file2 = new File("C:\\captcha2.png");
File fontfile = new File("C:\\xerox.ttf");
BufferedImage bfimage = ImageIO.read(file);
Graphics2D g = bfimage.createGraphics();
Font myfont = Font.createFont(Font.PLAIN, fontfile);
myfont = myfont.deriveFont(50f);
g.setFont(myfont);
g.setColor(Color.black);
AffineTransform att = new AffineTransform();
g.translate(100, 50);
att.rotate(Math.toRadians(15), 100, 50);
g.setTransform(att);
g.drawString("12345", 100, 50);
RenderedImage rimg = bfimage;
ImageIO.write(rimg, "PNG", file2);
例,但这里的质量是很多边缘光滑更好:
如何提高文字质量由Java中的“drawString”方法生成?
的“VALUE_TEXT_ANTIALIAS_DEFAULT”现场并没有解决问题,但场“VALUE_TEXT_ANTIALIAS_ON”解决了这个问题 - THX! – Birdman
不客气:) – mcfinnigan
“VALUE_TEXT_ANTIALIAS_ON”为我解决了 – Joqus