如何获得Java g.drawString()的高分辨率?
我有一些背景模板,java程序必须编写一些动态文本如何获得Java g.drawString()的高分辨率?,java,image,graphics,resolution,Java,Image,Graphics,Resolution,我有一些背景模板,java程序必须编写一些动态文本 BufferedImage image = ImageIO.read(new File("background.jpg")); Graphics g = image.createGraphics(); g.setFont(new Font("DejaVu Sans",Font.PLAIN,18)); g.drawString("Hello,World!",10,10); 当以这种方式编写时,我对Java编写的文本存在一些解析问题 如何使用J
BufferedImage image = ImageIO.read(new File("background.jpg"));
Graphics g = image.createGraphics();
g.setFont(new Font("DejaVu Sans",Font.PLAIN,18));
g.drawString("Hello,World!",10,10);
当以这种方式编写时,我对Java编写的文本存在一些解析问题
如何使用Java在图像上编写高分辨率文本
更新:这里是抗锯齿的示例。
问题不在于文本的绘制,而在于文件的后续保存:如果使用JPEG压缩,则会得到,特别是在文本等锐角处
除了不使用JPG之外,没有真正的解决方法。分辨率由您使用的字体和图像中的像素数决定。也许你在寻找抗锯齿?谢谢,我读了一些文章,然后尝试了,这不是抗锯齿,背景分辨率很高,当用方法drawString()编写文本时,文本周围会出现一些像素数很低的矩形,看起来很糟糕。如果你添加了一个示例图像(屏幕截图),你的意思会更清楚。@Rinat:你的意思一点也不清楚,请发布一个截图。我添加了图像,文本周围有些模糊!替代方法是使用PNG,或者将JPEG压缩质量设置为高。下面是设置压缩质量的示例代码段:
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);