# 控制渲染质量

> 原文： [https://docs.oracle.com/javase/tutorial/2d/advanced/quality.html](https://docs.oracle.com/javase/tutorial/2d/advanced/quality.html)

使用 [`Graphics2D`](https://docs.oracle.com/javase/8/docs/api/java/awt/Graphics2D.html) 类渲染提示属性指定是否希望尽可能快地渲染对象，或者是否希望渲染质量尽可能高。

要在`Graphics2D`上下文中设置或更改渲染提示属性，请构造 [`RenderingHints`](https://docs.oracle.com/javase/8/docs/api/java/awt/RenderingHints.html) 对象并使用`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:** Not all platforms support modification of the rendering mode, so specifying rendering hints does not guarantee that they will be used.

* * *

`RenderingHints`支持以下类型的提示：

| 暗示 | 键 | 值 |
| --- | --- | --- |
| **抗锯齿** | `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` |
| **分数文本度量标准** | `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` |
| **文字抗锯齿** | `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`
 |
| **LCD 文字对比** | `KEY_TEXT_LCD_CONTRAST` | 值应为 100 到 250 范围内的正整数。较低值（例如 100）对应于在浅色背景上显示深色文本时较高的对比度文本。当在浅色背景上显示暗文本时，较高值（例如 200）对应于较低对比度文本。典型的有用值在 140-180 的窄范围内。如果未指定任何值，则将应用系统或实现默认值。 |

当提示设置为默认值时，将使用平台呈现默认值。