java - 如何获得 Java g.drawString() 高分辨率?

标签 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 编写的文本有一些解析问题。

如何用Java在图片上写高分辨率文字?

更新:这里是抗锯齿的例子。 enter image description here

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

最佳答案

问题不在于文本的绘制,而在于文件的后续保存:如果您使用 JPEG 压缩,您将得到 compression artifacts ,特别是像您的文字这样的尖角。

除了不使用 JPG 之外,没有真正的解决办法。

关于java - 如何获得 Java g.drawString() 高分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741680/

相关文章:

java - maven如何使用mvn compile找出文件被更改的内容

java - 对前台服务使用 Context.startForegroundService(Intent) 而不是 Context.startService(Intent) 有什么好处吗?

java - 从 CustomerOrder 中提取数据以显示为总销售数据

image - grunt-contrib-imagemin 输出 "Fatal error: ENOENT, no such file or directory"

javascript - 数据错误() : "TypeError: Cannot read property ' length' of undefined"(Vue. js)

swift - UITableViewCell 图像始终显示最后一个单元格图像

java - 仅将时间存储在时间变量中,不包含 01.01.1970 的数据

python - 以编程方式创建图像的最佳方式

c++ - opengl中灯光的区别

java - 我在 GUI 中实现鼠标操作监听器时遇到问题