幽哥

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

RenderingHints 类定义了多种着色微调,它们存储在一个映射集的 Graphics2D 对象里。 setRenderingHint() 方法的参数是一个键以及对应的键值。在我们的代码中,第一个参数是代表 alpha 合成微调的键,第二个参数是该微调的值。该微调的其它可能的值有 VALUE_ALPHA_INTERPOLATION_DEFAULT,代表平台缺省值;以及 VALUE_ALPHA_INTERPOLATION_SPEED,代表追求速度而不是质量。
  您还可以为下面的键提供微调:

键  描述  
KEY_ANTIALIASING 决定是否使用抗锯齿。当着色有倾斜角度的线时,通常会得到一组阶梯式的像素排列,使这条线看上去不平滑,经常被称为 锯齿状图形。抗锯齿是一种技术,它设置有倾斜角度的线的像素亮度,以使线看起来更平滑。因此,这个微调是用来决定在着色有倾斜角度的线时是否在减少锯齿状图形上花费时间。可能的值有 VALUE_ANTIALIAS_ON, _OFF 或 _DEFAULT。  
KEY_COLOR_RENDERING 控制颜色着色的方式。可能的值有 VALUE_COLOR_RENDER_SPEED, _QUALITY 或 _DEFAULT。 
KEY_DITHERING 控制如何处理抖动。抖动是用一组有限的颜色合成出一个更大范围的颜色的过程,方法是给相邻像素着色以产生不在该组颜色中的新的颜色幻觉。可能的值有 VALUE_DITHER_ENABLE, _DISABLE 或 _DEFAULT。  
KEY_FRACTIONALMETRICS 文本的质量。可能的值有 VALUE_FRACTIONALMETRICS_ON, _OFF 或 _DEFAULT。 
KEY_INTERPOLATION 确定怎样做内插。 

  在对一个源图像做变形时,变形后的像素很少能够恰好对应目标像素位置。在这种情况下,每个变形后的像素的颜色值不得不由周围的像素决定。

  内插就是实现上述过程。有许多可用的技术。可能的值,按处理时间从最多到最少,是 VALUE_INTERPOLATION_BICUBIC, _BILINEAR 或 _NEAREST_NEIGHBOR。 

  KEY_RENDERING 确定着色技术,在速度和质量之间进行权衡。可能的值有 VALUE_RENDERING_SPEED, _QUALITY 或 _DEFAULT。 

  KEY_TEXT_ANTIALIASING 确定对文本着色时是否抗锯齿。可能的值有 VALUE_TEXT_ANTIALIASING_ON, _OFF 或 _DEFAULT。 

字段摘要 
static RenderingHints.Key KEY_ALPHA_INTERPOLATION 
         Alpha 插值提示键。 
static RenderingHints.Key KEY_ANTIALIASING 
         抗锯齿提示键。 
static RenderingHints.Key KEY_COLOR_RENDERING 
         颜色呈现提示键。 
static RenderingHints.Key KEY_DITHERING 
         抖动提示键。 
static RenderingHints.Key KEY_FRACTIONALMETRICS 
         字体规格提示键。 
static RenderingHints.Key KEY_INTERPOLATION 
         插值提示键。 
static RenderingHints.Key KEY_RENDERING 
         呈现提示键。 
static RenderingHints.Key KEY_STROKE_CONTROL 
         笔划规范化控制提示键。 
static RenderingHints.Key KEY_TEXT_ANTIALIASING 
         文本抗锯齿提示键 
static Object VALUE_ALPHA_INTERPOLATION_DEFAULT 
         Alpha 插值提示值——ALPHA_INTERPOLATION_DEFAULT。 
static Object VALUE_ALPHA_INTERPOLATION_QUALITY 
         Alpha 插值提示值——ALPHA_INTERPOLATION_QUALITY。 
static Object VALUE_ALPHA_INTERPOLATION_SPEED 
         Alpha 插值提示值——ALPHA_INTERPOLATION_SPEED。 
static Object VALUE_ANTIALIAS_DEFAULT 
         抗锯齿提示值——使用平台默认的抗锯齿模式完成呈现。 
static Object VALUE_ANTIALIAS_OFF 
         抗锯齿提示值——没有使用抗锯齿模式完成呈现。 
static Object VALUE_ANTIALIAS_ON 
         抗锯齿提示值——使用抗锯齿模式完成呈现。 
static Object VALUE_COLOR_RENDER_DEFAULT 
         颜色呈现提示值——COLOR_RENDER_DEFAULT。 
static Object VALUE_COLOR_RENDER_QUALITY 
         颜色呈现提示值——COLOR_RENDER_QUALITY。 
static Object VALUE_COLOR_RENDER_SPEED 
         颜色呈现提示值——COLOR_RENDER_SPEED。 
static Object VALUE_DITHER_DEFAULT 
         抖动提示值——对于抖动,使用平台默认值。 
static Object VALUE_DITHER_DISABLE 
         抖动提示值——呈现时不抖动。 
static Object VALUE_DITHER_ENABLE 
         抖动提示值——如果需要,在呈现时抖动。 
static Object VALUE_FRACTIONALMETRICS_DEFAULT 
         字体规格提示值——使用平台默认的字体规格。 
static Object VALUE_FRACTIONALMETRICS_OFF 
         字体规格提示值——禁用字体规格。 
static Object VALUE_FRACTIONALMETRICS_ON 
         字体规格提示值——启用字体规格。 
static Object VALUE_INTERPOLATION_BICUBIC 
         插值提示值——INTERPOLATION_BICUBIC。 
static Object VALUE_INTERPOLATION_BILINEAR 
         插值提示值——INTERPOLATION_BILINEAR。 
static Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR 
         插值提示值——INTERPOLATION_NEAREST_NEIGHBOR。 
static Object VALUE_RENDER_DEFAULT 
         呈现提示值——选择平台默认的呈现算法。 
static Object VALUE_RENDER_QUALITY 
         呈现提示值——选择偏重输出质量的合适呈现算法。 
static Object VALUE_RENDER_SPEED 
         呈现提示值——选择偏重输出速度的合适呈现算法。 
static Object VALUE_STROKE_DEFAULT 
         笔划规范化控制提示值——STROKE_DEFAULT。 
static Object VALUE_STROKE_NORMALIZE 
         笔划规范化控制提示值——STROKE_NORMALIZE。 
static Object VALUE_STROKE_PURE 
         笔划规范化控制提示值——STROKE_PURE。 
static Object VALUE_TEXT_ANTIALIAS_DEFAULT 
         文本抗锯齿提示值——使用平台默认的文本抗锯齿模式完成文本呈现。 
static Object VALUE_TEXT_ANTIALIAS_OFF 
         文本抗锯齿提示值——没有使用抗锯齿模式完成文本呈现。 
static Object VALUE_TEXT_ANTIALIAS_ON 
         文本抗锯齿提示值——使用抗锯齿模式完成文本呈现。

所以一般这样写

        Graphics2D g2d = (Graphics2D) g;
        RenderingHints rh = g2d.getRenderingHints();
        rh.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setRenderingHints(rh);

posted on 2011-03-27 17:32  幽哥  阅读(3013)  评论(0编辑  收藏  举报