|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object java.awt.RenderingHints
public class RenderingHints
RenderingHints
类定义和管理键和关联值的集合,它允许应用程序将输入提供给其他类使用的算法选择,这些类执行呈现和图像处理服务。Graphics2D
类以及实现 BufferedImageOp
和 RasterOp
的类都提供了一些方法,用于获取并可能设置单个 RenderingHints
键(或键组)及其关联值。当这些实现执行任何呈现或图像处理操作时,它们应当检查调用者所请求的任何 RenderingHints
的值,并相应地修改所使用的算法,以发挥它们的最佳功能。
注意,因为这些键和值是一些提示,所以不要求某一给定实现支持下面指示的所有可能选择,或者可以响应请求修改其算法选择。不同提示键的值也可以交互,从而在一种情况下可支持给定键的所有变体。当修改与其他键关联的值时,实现可能会受更多限制。例如,某些实现在抗锯齿提示关闭时可以提供几种抖动类型,但在抗锯齿开启时几乎不能控制抖动。受支持的键和提示的完整集合也因目标而有所不同,因为运行时在呈现到屏幕、呈现到 BufferedImage
对象或在打印时可能使用不同的底层模块。
实现可以随意地完全忽略提示,但应当尝试使用尽可能接近请求的实现算法。如果在将任意值用于关联提示键时某一实现支持给定的算法,那么它至少必须在此键的值正好是指定算法的值时才执行此操作。
用于控制提示的键都是为关联 RenderingHints.Key
类创建子类的特殊值。此类中许多常见提示在下文表示为静态常量,但列表并没有包含所有这类提示。通过定义子类化 Key
的新对象并定义关联值,其他包可以创建其他提示。
嵌套类摘要 | |
---|---|
static class |
RenderingHints.Key
定义与 RenderingHints 一起使用的、用来控制呈现和图像管线中各种算法选择的所有键的基本类型。 |
从接口 java.util.Map 继承的嵌套类/接口 |
---|
Map.Entry<K,V> |
字段摘要 | |
---|---|
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 RenderingHints.Key |
KEY_TEXT_LCD_CONTRAST
LCD 文本对比呈现提示键。 |
static Object |
VALUE_ALPHA_INTERPOLATION_DEFAULT
Alpha 插值提示值——由实现选择对性能和质量进行良好权衡的 alpha 混合算法 |
static Object |
VALUE_ALPHA_INTERPOLATION_QUALITY
Alpha 插值提示值——选择偏重于精确度和视觉质量的 alpha 混合算法。 |
static Object |
VALUE_ALPHA_INTERPOLATION_SPEED
Alpha 插值提示值——选择偏重于计算速度的 alpha 混合算法。 |
static Object |
VALUE_ANTIALIAS_DEFAULT
抗锯齿提示值——使用由实现选择的默认抗锯齿模式完成呈现。 |
static Object |
VALUE_ANTIALIAS_OFF
抗锯齿提示值——在不使用抗锯齿模式的情况下完成呈现。 |
static Object |
VALUE_ANTIALIAS_ON
抗锯齿提示值——使用抗锯齿模式完成呈现。 |
static Object |
VALUE_COLOR_RENDER_DEFAULT
颜色呈现提示值——根据实现的选择执行颜色转换计算,以表示可用的性能和精确度之间的最佳权衡。 |
static Object |
VALUE_COLOR_RENDER_QUALITY
颜色呈现提示值——用最高的精确度和视觉质量执行颜色转换计算。 |
static Object |
VALUE_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
字体小数规格提示值——用舍入为像素边界的 advance width 定位字符字形。 |
static Object |
VALUE_FRACTIONALMETRICS_ON
字体小数规格提示值——用子像素精确度定位字符字形。 |
static Object |
VALUE_INTERPOLATION_BICUBIC
插值提示值—— 使用 X 和 Y 中的立方函数插入图像中整数坐标附近的 9 个样本,以生成一个颜色样本。 |
static Object |
VALUE_INTERPOLATION_BILINEAR
插值提示值——图像中最接近整数坐标样本的 4 种颜色样本被线性地插入,以生成一个颜色样本。 |
static Object |
VALUE_INTERPOLATION_NEAREST_NEIGHBOR
插值提示值——使用图像中最接近整数坐标样本的颜色样本。 |
static Object |
VALUE_RENDER_DEFAULT
呈现提示值——由实现选择对性能和质量进行良好权衡的呈现算法。 |
static Object |
VALUE_RENDER_QUALITY
呈现提示值——选择偏重输出质量的呈现算法。 |
static Object |
VALUE_RENDER_SPEED
呈现提示值——选择偏重输出速度的呈现算法。 |
static Object |
VALUE_STROKE_DEFAULT
笔划规范化控制提示值——根据给定实现的权衡,可以修改几何形状或保留原来的几何形状。 |
static Object |
VALUE_STROKE_NORMALIZE
笔划规范化控制提示值——几何形状应当规范化,以提高均匀性或直线间隔和整体美观。 |
static Object |
VALUE_STROKE_PURE
笔划规范化控制提示值——几何形状应该保持不变并使用子像素精确度呈现。 |
static Object |
VALUE_TEXT_ANTIALIAS_DEFAULT
文本抗锯齿提示值——根据 KEY_ANTIALIASING 提示或由实现选择的默认值完成文本呈现。 |
static Object |
VALUE_TEXT_ANTIALIAS_GASP
文本抗锯齿提示值——文本呈现需要使用字体资源中的信息,这些信息指定了每个点大小是否适合应用 VALUE_TEXT_ANTIALIAS_ON 或 VALUE_TEXT_ANTIALIAS_OFF 。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_HBGR
文本抗锯齿提示值——要求针对 LCD 显示器优化文本显示,子像素按从左到右为 B、G、R 的顺序显示,从而使水平子像素分辨率是全部水平像素分辨率 (HBGR) 的三倍。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_HRGB
文本抗锯齿提示值——要求针对 LCD 显示器优化文本显示,该 LCD 显示器子像素按从左到右为 R、G、B 的顺序显示,从而使水平子像素分辨率是全部水平像素分辨率 (HRGB) 的三倍。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR
文本抗锯齿提示值——要求针对 LCD 显示器优化文本显示,子像素组织按从顶部到底部为 R、G、B 的顺序显示,从而使垂直子像素分辨率是全部垂直像素分辨率 (VBGR) 的三倍。 |
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VRGB
文本抗锯齿提示值——要求针对 LCD 显示器优化文本显示,子像素组织按从顶部到底部为 R、G、B 的顺序显示,从而使垂直子像素分辨率是全部垂直像素分辨率 (VRGB) 的三倍。 |
static Object |
VALUE_TEXT_ANTIALIAS_OFF
文本抗锯齿提示值——不使用任何抗锯齿形式完成文本呈现。 |
static Object |
VALUE_TEXT_ANTIALIAS_ON
文本抗锯齿提示值——使用某种抗锯齿形式完成文本呈现。 |
构造方法摘要 | |
---|---|
RenderingHints(Map<RenderingHints.Key,?> init)
构造一个新对象,该对象具有根据指定 Map 对象(可以为 null)初始化的键和值。 |
|
RenderingHints(RenderingHints.Key key,
Object value)
构造一个具有指定键/值对的新对象。 |
方法摘要 | |
---|---|
void |
add(RenderingHints hints)
将指定 RenderingHints 对象中的所有键和相应的值添加到此 RenderingHints 对象中。 |
void |
clear()
清除所有键/值对的 RenderingHints 对象。 |
Object |
clone()
创建此 RenderingHints 对象的一个副本,它与此 RenderingHints 对象具有相同的内容。 |
boolean |
containsKey(Object key)
如果此 RenderingHints 包含指定键的映射关系,则返回 true 。 |
boolean |
containsValue(Object value)
如果此 RenderingHints 将一个或多个键映射到指定值,则返回 true。 |
Set<Map.Entry<Object,Object>> |
entrySet()
返回此 RenderingHints 中所包含映射关系的 Set 视图。 |
boolean |
equals(Object o)
对指定的 Object 与此 RenderingHints 进行相等性比较。 |
Object |
get(Object key)
返回指定键所映射的值。 |
int |
hashCode()
返回此 RenderingHints 中的哈希码值。 |
boolean |
isEmpty()
如果此 RenderingHints 未包含键-值映射关系,则返回 true 。 |
Set<Object> |
keySet()
返回此 RenderingHints 中所包含键的 Set 视图。 |
Object |
put(Object key,
Object value)
将指定 key 映射到此 RenderingHints 对象中指定的 value 。 |
void |
putAll(Map<?,?> m)
将指定 Map 中所有映射关系复制到此 RenderingHints 中。 |
Object |
remove(Object key)
从此 RenderingHints 对象中移除键和它所对应的值。 |
int |
size()
返回此 RenderingHints 中的键-值映射关系数。 |
String |
toString()
返回 hashmap 的一个相当长的字符串表示形式,该 hashmap 包含此 RenderingHints 对象的键或值的映射关系。 |
Collection<Object> |
values()
返回此 RenderinHints 中所包含键的 Collection 视图。 |
从类 java.lang.Object 继承的方法 |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
public static final RenderingHints.Key KEY_ANTIALIASING
ANTIALIASING
提示控制 Graphics2D
对象的几何形状呈现方法是否将尝试沿形状的边缘减少锯齿现象。
典型抗锯齿算法的工作方式如下:根据估计的部分形状像素覆盖率,沿形状的边界将像素的现有颜色与所请求的填充绘制 (fill paint) 混合在一起。
此提示允许的值有
public static final Object VALUE_ANTIALIAS_ON
KEY_ANTIALIASING
public static final Object VALUE_ANTIALIAS_OFF
KEY_ANTIALIASING
public static final Object VALUE_ANTIALIAS_DEFAULT
KEY_ANTIALIASING
public static final RenderingHints.Key KEY_RENDERING
RENDERING
提示是一个提供高级建议的常规提示,目的是在进行评估权衡时提示是应该选择更偏重于速度,还是选择更偏重于质量的算法。任何呈现或图像处理操作都可以参考此提示,但是决定通常会遵照其他优先于此提示的更明确的提示。
此提示允许的值有
public static final Object VALUE_RENDER_SPEED
KEY_RENDERING
public static final Object VALUE_RENDER_QUALITY
KEY_RENDERING
public static final Object VALUE_RENDER_DEFAULT
KEY_RENDERING
public static final RenderingHints.Key KEY_DITHERING
DITHERING
提示控制着在将颜色存储到颜色分辨率受限制的目标中时,所选颜色的近似程度。
一些呈现目标支持的颜色选择数可能受到限制,它也许无法准确地表示在呈现操作过程中产生的颜色的完整色谱。对于这类目标,DITHERING
提示控制着是否使用最接近于所请求的受支持颜色的单个像素值的普通固定填充方式来完成呈现,或者是否使用组合的颜色模式来填充形状,以便更好地接近于该颜色。
此提示允许的值有
public static final Object VALUE_DITHER_DISABLE
KEY_DITHERING
public static final Object VALUE_DITHER_ENABLE
KEY_DITHERING
public static final Object VALUE_DITHER_DEFAULT
KEY_DITHERING
public static final RenderingHints.Key KEY_TEXT_ANTIALIASING
TEXT_ANTIALIASING
提示可以控制文本抗锯齿算法的使用,这与形状呈现的选择无关。通常,应用程序只希望对文本而不是其他形状使用抗锯齿。此外,用于减少文本锯齿现象的算法通常比那些为常规呈现而开发的算法更复杂,所以,此提示键提供了其他一些值,这些值可以控制某些特定于文本的算法的选择。如果保持在 DEFAULT
状态下,此提示通常遵从常规 KEY_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
public static final Object VALUE_TEXT_ANTIALIAS_ON
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_OFF
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT
KEY_ANTIALIASING
提示或由实现选择的默认值完成文本呈现。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_GASP
VALUE_TEXT_ANTIALIAS_ON
或 VALUE_TEXT_ANTIALIAS_OFF
。
TrueType 字体通常在 'gasp' 表中提供此信息。在没有此信息的情况下,特定字体和大小的行为由实现默认值确定。
注:字体设计者通常慎重地针对大多数普通用户界面的点大小提示某一种字体。因此,'gasp' 表有可能指定只针对这些大小而不是所有大小使用提示。所以,在许多情况下,得到的文本显示等效于 VALUE_TEXT_ANTIALIAS_OFF
。这可能无法预料,但它是正确的。
出于一致性目的,由多种物理字体组成的逻辑字体将使用最适合于总体复合字体的设置。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
注:
在选择是否应用任何 LCD 文本提示值时,实现可能考虑多种因素,这些因素包括要求目标的颜色深度至少要为每像素 15 位(即每个颜色分量为 5 位);字体特征(如内嵌位图是否可以产生更好的结果);在显示到非本地网络显示设备时,是否只在有合适的协议可用时才启用它;如果执行非常高的分辨率呈现或目标设备不合适时(如打印时),是否忽略提示。
这些提示在呈现到软件图像时同样可以应用,但这些图像可能不适合于常规导出,因为文本将针对特定子像素组织进行适当地呈现。此外,有损失的图像和图像格式(如颜色受到限制的 GIF)不是一个好选择。所以,除非图像注定要在具有相同配置的显示设备上呈现,否则,其他一些文本抗锯齿提示(如 VALUE_TEXT_ANTIALIAS_ON
)也许是更好的选择。
在使用时选择与 LCD 显示器不匹配的值可能导致文本质量的下降。在不具备与 LCD 显示器相同特征的显示设备(即 CRT)上,整体效果可能类似于标准文本抗锯齿,但质量可能因颜色失真而降低。模拟连接的 LCD 显示器也没有表现出比标准文本抗锯齿更好的地方,类似于 CRT。
换句话说,为了得到最好的结果,需使用带有数字显示连接器的 LCD 显示器并指定合适的子像素配置。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB
。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
VALUE_TEXT_ANTIALIAS_LCD_HRGB
。
KEY_TEXT_ANTIALIASING
public static final Object VALUE_TEXT_ANTIALIAS_LCD_VBGR
VALUE_TEXT_ANTIALIAS_LCD_HRGB
。
KEY_TEXT_ANTIALIASING
public static final RenderingHints.Key KEY_TEXT_LCD_CONTRAST
Integer
对象,在与 LCD 文本抗锯齿提示(如 VALUE_TEXT_ANTIALIAS_LCD_HRGB
)一起使用时,它被用于文本对比度调整。
KEY_TEXT_ANTIALIASING
public static final RenderingHints.Key KEY_FRACTIONALMETRICS
FRACTIONALMETRICS
提示控制单个字符字形的定位是否考虑字体的缩放字符 advance 子像素的精确度,或者这类 advance 向量是否舍入为整个设备像素的一个整数数字。此提示只建议定位字形应该使用的精度,而不指定或建议是否应为了匹配而修改实际光栅化或字形的像素边界。
将文本呈现到低分辩率的设备(如屏幕)时没必要包括大量的舍入操作,因为字符字形的形状与规格的高质量和非常精确的定义必须与离散设备像素相匹配。理想情况下,文本布局过程中字形的定位将根据点的大小通过缩放字体的设计规格进行计算,但缩放的 advance with 不必是像素的一个整数数字。如果根据这些缩放的设计规格使用子像素精确度对字形进行定位,则在理想情况下,光栅化需要针对每个可能的子像素原点进行调整。
不幸的是,在文本布局过程中将每个自定义字形缩放到其实际子像素原点的代价太高,所以基于整数设备定位的简化系统通常用于布局文本。字形的光栅化和缩放的 advance with 在设备分辨率上都被调整,以生成看起来很好的文本,在字形之间具有一致的整数像素距离,有助于使字形看起来均匀,有一致性的距离且可读性好。
这种将光栅化字形的 advance with 舍入为整数距离的处理意味着:由于在每个字形调整宽度中一系列小差异的累加,使得字符密度和文本字符串的整体长度不同于理论上设计的测量值。特定差异将针对每种字形而有所不同,与它们的理论设计测量值相比,一些字形比较宽,而另一些字形较窄。因此,字符密度和长度中的整体差异将因许多因素的不同而有所不同,这些因素包括字体、作为目标的特定设备分辨率以及为表示要呈现的字符串而选择的字形。因此,对整个字符串而言,在多个设备分辨率中呈现同一个字符串可能出现很多不同的规格。
当启用 FRACTIONALMETRICS
时,实际字体设计规格按照点大小缩放,并用于具有子像素精确度的布局。因此,字符的字形平均密度和长字符串总长度将更接近于与字体的理论设计相匹配,但是可读性可能受影响,因为单独的字符对可能并不是始终显示为一致的间隔距离,这取决于字形原点子像素的累加与设备像素网格的协调方式。当正在执行必须一致地跨越多种不同输出分辨率的文本布局时,启用此提示可能很合适。需要特别说明的是,在文本布局正在低分辩率设备(如输出屏幕)上预览,但最终在高分辩率打印机或排版设备上呈现的情况下,此提示可能也很合适。
当禁用此提示时,缩放的设计规格针对布局舍入或调整为整数距离。任意特定字形对之间的距离在设备上将更加统一,但是长字符串的密度和总长度可能不再与字体设计人员的理论想法相匹配。在低分辩率设备(如计算机监视器)上禁用此提示通常产生更可读的结果。
此键允许的值有
public static final Object VALUE_FRACTIONALMETRICS_OFF
KEY_FRACTIONALMETRICS
public static final Object VALUE_FRACTIONALMETRICS_ON
KEY_FRACTIONALMETRICS
public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
KEY_FRACTIONALMETRICS
public static final RenderingHints.Key KEY_INTERPOLATION
INTERPOLATION
提示控制在图像呈现操作过程中如何过滤图像像素或重新对其取样。
图像被隐式地定义为在整数坐标位置上提供颜色样本。当图像没有缩放到目标而垂直呈现时,其图像像素映射到其设备像素的选择是显而易见的,且图像中整数坐标位置的样本一个对一个地被转换到设备像素网格上的相应整数位置。当图像在缩放、旋转或其他转换坐标系中呈现时,图像后面设备像素坐标的映射关系可能引起问题:所提供的图像样本整数位置之间的连续坐标处使用什么颜色样本。插值算法定义了一些函数,它们根据整数坐标周围的颜色样本为图像中的任何连续坐标提供颜色样本。
此提示允许的值有
public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
在放大图像时,图像看起来会相应地有些斑驳模糊。在缩小图像时,在输出表示中,源像素的颜色被不作修改地使用,或者完全被跳过。
KEY_INTERPOLATION
public static final Object VALUE_INTERPOLATION_BILINEAR
当放大图像时,因为有 NEAREST_NEIGHBOR
,在图像中的颜色之间没有斑驳模糊边缘,但是混合可能沿样本排列的水平和垂直边缘显示一些微小的间断,这是由于插值斜面从样本的一侧到另一侧的突然更改造成的。当缩小图像时,更多图像像素具有它们自己的以结果输出表示的颜色样本,因为每个输出像素都从多达 4 个图像像素中接收颜色信息。
KEY_INTERPOLATION
public static final Object VALUE_INTERPOLATION_BICUBIC
X
和 Y
中的立方函数插入图像中整数坐标附近的 9 个样本,以生成一个颜色样本。从概念上讲,图像视图非常类似于 BILINEAR
算法中使用的视图,区别在于连接样本和曲线之间的颜色延伸,且当它们跨越样本边界时具有较好的斜面连续性。
放大图像时,没有斑驳模糊的边缘,与 BILINEAR
相比,插值显示得更光滑且原始图像中的所有边界都具有更好的描绘。当缩小图像时,甚至有更多的原始图像中的原始颜色样本将带有并表示它们的颜色信息。
KEY_INTERPOLATION
public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
ALPHA_INTERPOLATION
提示是一个提供高级建议的常规提示,目的是在评估权衡时提示应选择更偏重于速度或更偏重于质量的 alpha 混合算法。
此提示可以控制 alpha 混合算法的选择,它提供了使用快速查找表或较低精度 SIMD 指令的一些精确度。在计算其他每像素成本时,此提示还控制是否在多个线性可视效果计算过程中将颜色和 alpha 值转换到线性颜色空间。
此提示允许的值有
public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
KEY_ALPHA_INTERPOLATION
public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
KEY_ALPHA_INTERPOLATION
public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
KEY_ALPHA_INTERPOLATION
public static final RenderingHints.Key KEY_COLOR_RENDERING
COLOR_RENDERING
提示控制将颜色存储到目标图像或表面时近似值或转换的精确度。
当必须将呈现或图像处理操作生成的颜色值存储到目标中时,首先必须将该颜色转换为适合存储到目标图像或表面中的形式。必须至少将颜色分量转换为位表示形式并以正确的顺序排序,或者必须首先选择颜色查找表的索引,这样数据才可以存储到目标内存中。没有这种最少的转换,目标数据有可能表示为随机、不正确或甚至可能不受支持的值。快速将呈现操作的结果转换为最常见目标颜色格式的算法已众所周知,且执行得相当理想。
仅执行最基本的颜色格式转换,将颜色存储到目标,这样做可能潜在地忽略源和目标的 ColorSpace
校准或其他因素(如 gamma 校正的直线性)的差异。除非源和目标 ColorSpace
相同,从而在正确执行呈现操作的同时最大限度地维护被表示颜色的精确度,否则应该将源颜色转换为设备无关的 ColorSpace
,然后转换回目标 ColorSpace
。此外,如果要在呈现操作过程中执行计算(如多种源颜色的混合),通过选择与中间设备无关的 ColorSpace
,使被计算的值与人眼的感知之间具有某种线性关系,以响应输出设备曲线,那么可以实现更加清晰的视觉。
此提示允许的值有
public static final Object VALUE_COLOR_RENDER_SPEED
KEY_COLOR_RENDERING
public static final Object VALUE_COLOR_RENDER_QUALITY
KEY_COLOR_RENDERING
public static final Object VALUE_COLOR_RENDER_DEFAULT
KEY_COLOR_RENDERING
public static final RenderingHints.Key KEY_STROKE_CONTROL
STROKE_CONTROL
提示键控制呈现实现是否应该或允许出于各种目的而修改所呈现轮廓的几何形状。
一些实现可以使用优化的平台呈现库,在给定平台上,它们比传统软件呈现算法更快,但它们也可能不支持浮点坐标。一些实现也可以具有复杂的算法,它们打乱路径的坐标,以便在宽度和间距上使宽线看起来更统一。
如果实现执行任意类型的修改或路径的“规范化”,则应当不在任何方向用半个以上像素来移动坐标。
此提示允许的值有
public static final Object VALUE_STROKE_DEFAULT
KEY_STROKE_CONTROL
public static final Object VALUE_STROKE_NORMALIZE
KEY_STROKE_CONTROL
public static final Object VALUE_STROKE_PURE
KEY_STROKE_CONTROL
构造方法详细信息 |
---|
public RenderingHints(Map<RenderingHints.Key,?> init)
init
- 初始化提示的键/值对映射;如果对象为空,则该参数为 nullpublic RenderingHints(RenderingHints.Key key, Object value)
key
- 特定提示属性的键value
- 用 key
指定的提示属性的值方法详细信息 |
---|
public int size()
RenderingHints
中的键-值映射关系数。
Map<Object,Object>
中的 size
RenderingHints
中的键-值映射关系数。public boolean isEmpty()
RenderingHints
未包含键-值映射关系,则返回 true
。
Map<Object,Object>
中的 isEmpty
RenderingHints
未包含键-值映射关系,则返回 true
。public boolean containsKey(Object key)
RenderingHints
包含指定键的映射关系,则返回 true
。
Map<Object,Object>
中的 containsKey
key
- 要测试其是否存在于此 RenderingHints
中的键。
RenderingHints
包含指定键的映射关系,则返回 true
。
ClassCastException
- 如果无法将键强制转换为 RenderingHints.Key
public boolean containsValue(Object value)
RenderingHints
至少包含一个与满足以下条件的值 v
的映射关系时,才返回 true
:
(value==null ? v==null :value.equals(v)). 对于大部分
RenderingHints
实现而言,此操作需要的时间可能会与 RenderingHints
的大小呈线性关系。
Map<Object,Object>
中的 containsValue
value
- 要测试是否存在于此 RenderingHints
中的值。
RenderingHints
将一个或多个键映射到指定值,则返回 true
。public Object get(Object key)
Map<Object,Object>
中的 get
key
- 呈现提示键
null
。
ClassCastException
- 如果无法将键强制转换为 RenderingHints.Key
put(Object, Object)
public Object put(Object key, Object value)
key
映射到此 RenderingHints
对象中指定的 value
。key 和 value 都不能为 null
。通过使用与原来的键相同的键调用 get
方法,可以得到该值。
Map<Object,Object>
中的 put
key
- 呈现提示键。key
- 呈现提示值。value
- 与指定键关联的值
null
。
NullPointerException
- 如果该键为 null
。
ClassCastException
- 如果无法将该键强制转换为 RenderingHints.Key
IllegalArgumentException
- 对于指定值,如果指定键的 Key.isCompatibleValue()
方法返回 falseget(Object)
public void add(RenderingHints hints)
RenderingHints
对象中的所有键和相应的值添加到此 RenderingHints
对象中。位于此 RenderingHints
对象中,但不在指定的 RenderingHints
对象中的键不受影响。
hints
- 要添加到此 RenderingHints
对象中的键/值对的集合public void clear()
RenderingHints
对象。
Map<Object,Object>
中的 clear
public Object remove(Object key)
RenderingHints
对象中移除键和它所对应的值。如果该键不在此 RenderingHints
对象中,则此方法不执行任何操作。
Map<Object,Object>
中的 remove
key
- 要移除的呈现提示键
RenderingHints
对象中映射的键的值;如果键没有映射关系,则返回 null
。
ClassCastException
- 如果无法将键强制转换为 RenderingHints.Key
public void putAll(Map<?,?> m)
Map
中所有映射关系复制到此 RenderingHints
中。这些映射关系将替换此 RenderingHints
中针对指定 Map
中的当前所有键的所有映射关系。
Map<Object,Object>
中的 putAll
m
- 指定的 Map
ClassCastException
- 指定 Map
中的键或值的类不允许将其存储在此 RenderingHints
中。
IllegalArgumentException
- 如果指定 Map
中的键或值的某个方面不允许将其存储在此 RenderingHints
中。public Set<Object> keySet()
RenderingHints
中所包含键的 Set
视图。Set 受 RenderingHints
的支持,所以对 RenderingHints
的更改反映在 Set
中,反之亦然。如果在对 Set
进行迭代的同时修改了 RenderingHints
,则迭代的结果是不确定的。该 Set
支持元素移除,它可以通过 Iterator.remove
、Set.remove
、removeAll
、retainAll
和 clear
操作从 RenderingHints
中移除相应的映射关系。它不支持 add
或 addAll
操作。
Map<Object,Object>
中的 keySet
RenderingHints
所包含键的 Set
视图。public Collection<Object> values()
RenderinHints
中所包含键的 Collection
视图。Collection
受 RenderingHints
的支持,所以 RenderingHints
的更改反映在 Collection
中,反之亦然。如果在对 Collection
进行迭代的同时修改了 RenderingHints
,则迭代的结果是不确定的。此 Collection
支持元素移除,它可以通过 Iterator.remove
、Collection.remove
、removeAll
、retainAll
和 clear
操作从 RenderingHints
中移除相应的映射关系。它不支持 add
或 addAll
操作。
Map<Object,Object>
中的 values
RenderingHints
所包含值的 Collection
视图。public Set<Map.Entry<Object,Object>> entrySet()
RenderingHints
中所包含映射关系的 Set
视图。在返回的 Set
中,每个元素都是一个 Map.Entry
。Set
受 RenderingHints
的支持,所以对 RenderingHints
的更改反映在 Set
中,反之亦然。如果在对 Set
进行迭代的同时修改了 RenderingHints
,则迭代的结果是不确定的。
从 RenderingHints
对象中返回的 entrySet 是不可修改的。
Map<Object,Object>
中的 entrySet
RenderingHints
所包含映射关系的 Set
视图。public boolean equals(Object o)
Object
与此 RenderingHints
进行相等性比较。如果指定对象也是一个 Map
,并且这两个 Map
对象表示相同的映射关系,则返回 true
。更正式地说,如果 t1.keySet().equals(t2.keySet())
,并且对于 t1.keySet()
中的每个键 k
,都满足以下条件,则 t1
和 t2
这两个 Map
对象表示相同的映射关系:
(t1.get(k)==null ? t2.get(k)==null :t1.get(k).equals(t2.get(k))). 这确保了
equals
方法在 Map
接口的不同实现中能够正常工作。
Map<Object,Object>
中的 equals
Object
中的 equals
o
- 要与此 RenderingHints
进行相等性比较的 Object
。
Object
等于此 RenderingHints
,则返回 true
。Object.hashCode()
,
Hashtable
public int hashCode()
RenderingHints
中的哈希码值。RenderingHints
的哈希码被定义为此 RenderingHints
对象的 entrySet 视图中每个 Entry
的 hashCode 之和。这确保 t1.equals(t2)
意味着对于任何两个 Map
对象 t1
和 t2
,都存在 t1.hashCode()==t2.hashCode()
,这正是 Object.hashCode
的常规协定所要求的。
Map<Object,Object>
中的 hashCode
Object
中的 hashCode
RenderingHints
的哈希码值。Map.Entry.hashCode()
,
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)
public Object clone()
RenderingHints
对象的一个副本,它与此 RenderingHints
对象具有相同的内容。
Object
中的 clone
Cloneable
public String toString()
RenderingHints
对象的键或值的映射关系。
Object
中的 toString
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2008 Sun Microsystems, Inc. 保留所有权利。请遵守GNU General Public License, version 2 only。