有一个PHP应用程序,其目的是在多个预定义的PNG图像上打印文本。 它没有问题,并以任何给定的字体和颜色打印抗锯齿文本。 在Java上打印现有图像时有哪些特殊注意事项?
我厌倦了使用Graphics2D调用来打印相同的图像,但它不能使用下面的代码。
String imName = Config.getBlanketImage();
File file = new File(imName);
// BufferedImage im = new BufferedImage(400, 600, BufferedImage.TYPE_INT_ARGB);
// graphics.setColor(new Color(bColor.getRed(), bColor.getGreen(), bColor.getBlue()));
// graphics.fillRect(0, 0, im.getWidth(), im.getHeight());
BufferedImage im = ImageIO.read(file);
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_DISABLE);
graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
graphics.setFont(drawFont);
graphics.setColor(new Color(aColor.getRed(), aColor.getGreen(), a.getBlue()));
graphics.drawString(Config.getText1(), x, y);
文字以完全错误的颜色出现 - 背景色调,有时被细线的黑色像素包围。我无法发布图像,只能发布2个链接,因此请拧紧样本。 但是如果我注释掉前三行并且注释掉已注释掉的线并打印在一个全新的图像上,那么颜色就会正确并且会出现反锯齿。
我尝试使用和不使用渲染提示,它没有任何区别,只显示我尝试的所有内容。