前言
最近有个证书管理系统的项目,但是发现用java的graphics2d绘制文字但是文字边缘模糊,于是有了本文的解决方案,可广泛适用于graphics2d绘制的水印等地方。
解决方案
这是项目实际代码,
BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufImg.createGraphics();
//文字边缘平滑 by zhengkai.blog.csdn.net
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
//图片边缘平滑 by zhengkai.blog.csdn.net
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//各种描绘......省略核心代码
//绘制完毕释放内存
g.dispose();
设置抗锯齿属性
文字边缘平滑 g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
图片边缘平滑
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
效果预览
1.优化之前,可以看到文字边缘模糊
2.优化之后,可以看到文字边缘顺滑
————————————————
版权声明:本文为CSDN博主「Moshow郑锴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/moshowgame/article/details/120538454