java2d 清晰字体_java Graphics2d消除锯齿,使字体平滑显示

Java 2D API 提供的文本处理功能进行美化。Java 2D API 的文本功能包括:java

使用抗锯齿处理和微调(hinting)以达到更好的输出质量

可使用系统安装的全部字体

能够将对图形对象的操做(旋转、缩放、着色、剪切等等)应用到文本上。

支持向字符串添加内嵌属性(如字体、尺寸、深浅,甚至图像)

支持双向文本(启用从右到左的字符顺序,就象您在阿拉伯语和希伯来语中可能遇到的同样)

第一光标和第二光标可以浏览同时包含从右到左和从左到右字符顺序的文本。

先进的字体度量功能,超过旧的 java.awt.FontMetrics 类中的相应功能

排版功能能够实现单词换行和调整多行文本

这个 API 的核心是由 java.awt.Graphics2D 类提供的,该类是 java.awt.Graphics 的一个子类。API 的其它部分由 java.awt 层次结构中的其它包提供,包括 java.awt.color 、 java.awt.font 和 java.awt.geom 。算法

画线平滑:字体

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

g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,RenderingHints.VALUE_STROKE_DEFAULT);

画线恢复到默认情况:spa

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

g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,RenderingHints.VALUE_STROKE_PURE);

Graphics2d拥有比graphics更为强大的画图方法

因此在画图时,咱们要使用的画笔是Graphics2D。

可是,Graphics2D直接拿来画,效果是同样的,仍是有锯齿(缘由:像素过小致使)。

因此咱们要对它设置各类呈现算法。code

设置呈现算法语句:

BufferedImage img=new BufferedImage(什么什么什么);

Graphics2D g2 = img.createGraphics();//得到一个Graphics2D对象

【设置抗锯齿属性】对象

//消除文字锯齿

g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

//消除画图锯齿字符串

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);get

在上面的【设置抗锯齿属性】中,粗体你照写就能够了,细的是能够替换的

消文字锯齿:RenderingHints.KEY_TEXT_ANTIALIASING

消绘图锯齿:RenderingHints.KEY_ANTIALIASING

选你须要的填进去就能够了,而后就能够绘图消锯齿了。

实例代码以下:it

public class CompoundTileTools {

public static void main(String[] args) {

int width = Constants.s_width_gps;

int height = Constants.s_height_gps;

// 建立BufferedImage对象

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取Graphics2D

Graphics2D g2d = image.createGraphics();io

// ---------- 增长下面的代码使得背景透明 -----------------

image = g2d.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);

g2d.dispose();

g2d = image.createGraphics();

// ---------- 背景透明代码结束 -----------------

//消除锯齿

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

// 画图

g2d.setColor(new Color(255, 0, 0));

// 指定绘制线的宽度(多粗)

g2d.setStroke(new BasicStroke(2));

// 指定绘制线的起点和终点

g2d.drawLine(412, 253, 392, 252);

// 释放对象

g2d.dispose();

// 保存文件

try {

ImageIO.write(image, "png", new File("D:/test/test1.png"));

} catch (IOException e) {

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值