控制渲染质量
使用Graphics2D类渲染提示属性可以指定是否要尽快渲染对象,还是希望渲染质量尽可能高。
要在Graphics2D
上下文中设置或更改呈现提示属性,请构造一个RenderingHints对象,然后使用setRenderingHints
方法将其传递到Graphics2D
中。如果只想设置一个提示,则可以调用Graphics2D
setRenderingHint
并为要设置的提示指定键值对。 (键值对在RenderingHints
类中定义.)
例如,要设置在可能的情况下使用抗锯齿的首选项,可以使用setRenderingHint
:
public void paint (graphics g){
Graphics2D g2 = (Graphics2D)g;
RenderingHints rh = new RenderingHints(
RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2.setRenderingHints(rh);
...
}
Note:
并非所有平台都支持对渲染 Pattern 的修改,因此指定渲染提示并不能保证将使用它们。
RenderingHints
支持以下类型的提示:
Hint | Key | Values |
---|---|---|
Antialiasing | KEY_ANTIALIASING | VALUE_ANTIALIAS_ON |
VALUE_ANTIALIAS_OFF VALUE_ANTIALIAS_DEFAULT | ||
Alpha 插值 | KEY_ALPHA_INTERPOLATION | VALUE_ALPHA_INTERPOLATION_QUALITY VALUE_ALPHA_INTERPOLATION_SPEED VALUE_ALPHA_INTERPOLATION_DEFAULT |
彩色渲染 | KEY_COLOR_RENDERING | VALUE_COLOR_RENDER_QUALITY VALUE_COLOR_RENDER_SPEED VALUE_COLOR_RENDER_DEFAULT |
抖动 | KEY_DITHERING | VALUE_DITHER_DISABLE VALUE_DITHER_ENABLE VALUE_DITHER_DEFAULT |
部分 LiteralsMetrics | KEY_FRACTIONALMETRICS | VALUE_FRACTIONALMETRICS_ON VALUE_FRACTIONALMETRICS_OFF VALUE_FRACTIONALMETRICS_DEFAULT |
图像插值 | KEY_INTERPOLATION | VALUE_INTERPOLATION_BICUBIC VALUE_INTERPOLATION_BILINEAR VALUE_INTERPOLATION_NEAREST_NEIGHBOR |
渲染 | KEY_RENDERING | VALUE_RENDER_QUALITY VALUE_RENDER_SPEED VALUE_RENDER_DEFAULT |
行程标准化控制 | KEY_STROKE_CONTROL | VALUE_STROKE_NORMALIZE VALUE_STROKE_DEFAULT VALUE_STROKE_PURE |
Literals 抗锯齿 | KEY_TEXT_ANTIALIASING | VALUE_TEXT_ANTIALIAS_ON VALUE_TEXT_ANTIALIAS_OFF VALUE_TEXT_ANTIALIAS_DEFAULT VALUE_TEXT_ANTIALIAS_GASP VALUE_TEXT_ANTIALIAS_LCD_HRGB VALUE_TEXT_ANTIALIAS_LCD_HBGR VALUE_TEXT_ANTIALIAS_LCD_VRGB VALUE_TEXT_ANTIALIAS_LCD_VBGR |
LCDLiterals 对比 | KEY_TEXT_LCD_CONTRAST | 值应为 100 到 250 之间的正整数。当在浅色背景上显示深色文本时,较低的值(例如 100)对应于较高的对比度文本。当在浅色背景上显示深色文本时,较高的值(例如 200)对应于较低对比度的文本。典型的有用值是在 140-180 的窄范围内。如果未指定任何值,则将应用系统或实现的默认值。 |
当提示设置为默认时,将使用平台渲染默认值。