public class RenderingHints extends Object implements Map<Object,Object>, Cloneable
RenderingHints
类定义和管理密钥和关联值的集合,允许应用程序为执行渲染和图像处理服务的其他类使用的算法选择提供输入。
Graphics2D
类和实现BufferedImageOp
和RasterOp
的类都提供了获取和可能设置RenderingHints RenderingHints
关键字及其关联值的个人或组的RenderingHints
。
当这些实现执行任何渲染或图像操作操作时,他们应该检查呼叫者请求的任何RenderingHints
的值,并根据他们的能力定制所使用的算法。
请注意,由于这些键和值是提示 ,所以不需要给定的实现支持下面指出的所有可能的选择,或者它可以响应修改其算法选择的请求。 各种提示键的值也可以相互作用,使得当在一种情况下支持给定键的所有变体时,当与其他键相关联的值被修改时,实施可能会受到更大的限制。 例如,当抗锯齿提示被关闭时,一些实施方式可能能够提供几种类型的抖动,但是当抗锯齿处于打开状态时,几乎不能控制抖动。 支持的键和提示的完整集合也可能因目的地而异,因为运行时可能会使用不同的底层模块呈现到屏幕上,或者在BufferedImage
对象或打印时使用。
实现可以完全忽略提示,但应该尝试使用尽可能接近请求的实现算法。 如果一个实现支持一个给定的算法,当任何值用于相关联的提示密钥时,最低限度地,当该值的值是指定算法的确切值时,它必须这样做。
用于控制提示的键都是对相关联的RenderingHints.Key
类进行子类化的特殊值。 许多常见的提示在下面被表示为这个类中的静态常量,但是列表并不是详尽无遗的。 其他提示也可以由其他包创建,方法是定义新对象,该对象对Key
类进行子类化并定义相关联的值。
Modifier and Type | Class and Description |
---|---|
static class |
RenderingHints.Key
定义与 RenderingHints 类一起使用的所有键的基本类型,以控制渲染和成像管道中的各种算法选择。
|
Modifier and Type | Field and Description |
---|---|
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插值提示值 - α混合算法由实现选择,以实现性能的良好折衷
|
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
字体分数度量提示值 - 字符字形以先进宽度定位,四舍五入到像素边界。
|
static Object |
VALUE_FRACTIONALMETRICS_ON
字体分数度量提示值 - 字符字形以子像素精度定位。
|
static Object |
VALUE_INTERPOLATION_BICUBIC
插值提示值 - 使用
X 和
Y 中的三次函数对图像中9个附近整数坐标样本的颜色样本进行
X ,以生成颜色样本。
|
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显示,按照R,G,B的显示从左到右的顺序显示,使得水平子像素分辨率是全像素水平分辨率(HRGB)的三倍, 。
|
static Object |
VALUE_TEXT_ANTIALIAS_LCD_VBGR
文本抗锯齿提示值 - 要求显示的文本被优化为具有从B,G,R的显示器顶部到底部的子像素组织的LCD显示,使得垂直子像素分辨率是全像素垂直分辨率(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
文本抗锯齿提示值 - 文本渲染是通过某种形式的抗锯齿来完成的。
|
Constructor and Description |
---|
RenderingHints(Map<RenderingHints.Key,?> init)
构造一个新对象,该对象具有从指定的Map对象初始化的键和值,该对象可能为null。
|
RenderingHints(RenderingHints.Key key, Object value)
使用指定的键/值对构造新对象。
|
Modifier and Type | Method and Description |
---|---|
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()
返回
Set 视图包含在此映射的
RenderingHints 。
|
boolean |
equals(Object o)
将指定的
Object 与此
RenderingHints 进行比较以获得相等性。
|
Object |
get(Object key)
返回指定键映射到的值。
|
int |
hashCode()
返回此
RenderingHints 的哈希码值。
|
boolean |
isEmpty()
如果
RenderingHints 包含键值映射,则返回
true 。
|
Set<Object> |
keySet()
返回
Set 视图包含在这个按键的
RenderingHints 。
|
Object |
put(Object key, Object value)
映射到指定
key 到指定的
value 这个
RenderingHints 对象。
|
void |
putAll(Map<?,?> m)
将所有映射从指定的Map
Map 到此
RenderingHints 。
|
Object |
remove(Object key)
从这个
RenderingHints 对象中删除键及其对应的值。
|
int |
size()
返回此
RenderingHints 中键值映射的
RenderingHints 。
|
String |
toString()
返回hashmap的相当长的字符串表示形式,其中包含该值与
RenderingHints 对象的键映射。
|
Collection<Object> |
values()
返回
Collection 视图包含在这个值的
RenderinHints 。
|
finalize, getClass, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
public static final RenderingHints.Key KEY_ANTIALIASING
ANTIALIASING
提示控制Graphics2D
对象的几何渲染方法是否会尝试减少沿形状边缘的别名伪影。
典型的抗锯齿算法通过根据估计的形状的部分像素覆盖率将沿形状边界的像素的现有颜色与所请求的填充颜色混合起作用。
此提示的允许值为
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
提示键的值。
此提示的允许值为
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'表中提供此信息。 在没有此信息的情况下,特定字体和大小的行为由实现默认值确定。
注意:字体设计师通常会仔细提示最常见的用户界面点大小的字体。 因此,“喘气”表可能会指定仅在这些尺寸上使用暗示,而不是“平滑”。 所以在很多情况下,结果文本显示等效于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)上,整体效果可能与标准文本抗锯齿相似,但质量可能会因颜色失真而降低。 模拟连接的液晶显示器与标准文本抗锯齿相比也可能没有任何优势,与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
提示控制单个字符字形的定位是否考虑了字体的缩放字符前进的子像素精度,或者这些前进矢量是否舍入到整数设备像素的整数。
此提示仅建议使用多少精度来定位字形,并且不指定或推荐是否应修改字形的实际光栅化或像素边界以匹配。
将文本呈现为低分辨率设备(如屏幕)将必然涉及多个舍入操作,因为字符字形的形状和度量的高质量和精确定义必须与分立的设备像素相匹配。 理想情况下,字体在文本布局中的定位将通过根据点大小缩放字体中的设计度量来计算,但是缩放的前进宽度不一定是整数像素。 如果根据这些缩放的设计度量符号以子像素的精度来定位字形,则理想地需要针对每个可能的子像素原点调整光栅化。
不幸的是,在文本布局期间缩放定制成其精确子像素原点的每个字形将是非常昂贵的,因此通常使用基于整数设备位置的简化系统来布局文本。 字形的光栅化和缩放的前进宽度都被一起调整,以产生看起来很好的设备分辨率的文本,并且在字形之间具有一致的整数像素距离,帮助字形看起来均匀一致地间隔开并且可读。
将光栅化字形的前进宽度的舍入到整数的过程意味着文本串的字符密度和总长度将与理论设计测量值不同,这是由于每个调整宽度的一系列小差异的累积字形 每个字形的具体差异将会有所不同,有些更为宽泛,有些比其理论设计尺寸更窄。 因此,字符密度和长度的总体差异将由许多因素而变化,这些因素包括字体,被指定的具体设备分辨率以及被选择以表示呈现的字符串的字形。 因此,在多个设备分辨率下渲染相同的字符串可能会产生整个字符串的广泛变化的度量。
当启用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个附近整数坐标样本的颜色样本进行X
,以生成颜色样本。
在概念上,图像的视图与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
源和目的地或其他因素,诸如伽马校正的线性度。 除非源和目的地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
- 用于初始化提示的键/值对的映射,如果对象应为空,则为null
public RenderingHints(RenderingHints.Key key, Object value)
key
- 特定提示属性的关键
value
- 使用
key
的提示属性的值
public int size()
RenderingHints
中键值映射的
RenderingHints
。
public boolean isEmpty()
RenderingHints
包含键值映射,则返回
true
。
public boolean containsKey(Object key)
RenderingHints
包含指定键的映射,则返回
true
。
containsKey
在界面
Map<Object,Object>
key
- 要在此
RenderingHints
中存在的密钥要进行测试。
true
如果此
RenderingHints
包含指定键的映射。
ClassCastException
- 如果密钥不能转换为
RenderingHints.Key
public boolean containsValue(Object value)
true
当且仅当该RenderingHints
包含的至少一个映射到一个值v
使得
(value==null ? v==null : value.equals(v))
。
此操作可能会需要时间线性RenderingHints
大小的大多数实现RenderingHints
。
containsValue
在界面
Map<Object,Object>
value
- 在此
RenderingHints
中存在的值将被测试。
true
如果这个
RenderingHints
将一个或多个键映射到指定的值。
public Object get(Object key)
get
在界面
Map<Object,Object>
key
- 一个渲染提示键
null
如果该键未映射到此对象中的任何值。
ClassCastException
- 如果密钥不能转换为
RenderingHints.Key
put(Object, Object)
public Object put(Object key, Object value)
key
到指定的value
这个RenderingHints
对象。
钥匙和价值都不能是null
。
可以通过使用等于原始密钥的密钥来调用get
方法来检索该值。
put
在界面
Map<Object,Object>
key
- 渲染提示键。
value
- 渲染提示值。
null
如果没有)。
NullPointerException
- 如果键是
null
。
ClassCastException
- 如果密钥不能被转换为
RenderingHints.Key
IllegalArgumentException
- 如果指定键的
Key.isCompatibleValue()
方法对于指定的值返回false
get(Object)
public void add(RenderingHints hints)
RenderingHints
对象添加到此RenderingHints
对象。
存在于此RenderingHints
对象中的键,但不在指定的RenderingHints
对象中的键不受影响。
hints
- 要添加到此
RenderingHints
对象的一组键/值对
public Object remove(Object key)
RenderingHints
对象中删除键及其对应的值。
如果该键不在此RenderingHints
对象中,此方法不执行任何操作。
remove
在界面
Map<Object,Object>
key
- 需要删除的渲染提示密钥
RenderingHints
对象,或
null
如果该键没有映射。
ClassCastException
- 如果密钥不能转换为
RenderingHints.Key
public void putAll(Map<?,?> m)
Map
到此RenderingHints
。
这些映射关系将替换任何映射,这RenderingHints
有任何当前指定的键Map
。
putAll
在界面
Map<Object,Object>
m
- 指定的
Map
ClassCastException
-
ClassCastException
中的键或值的
Map
可防止将其存储在此
RenderingHints
。
IllegalArgumentException
-在指定的一个键或值的某些方面
Map
防止它被存储在此
RenderingHints
。
public Set<Object> keySet()
Set
视图包含在这个按键的RenderingHints
。
该套装由支持RenderingHints
,所以这种变化RenderingHints
反映在Set
,反之亦然。
如果RenderingHints
被修改,而在迭代Set
正在进行中,迭代的结果是不确定的。
所述Set
支持元素移除,其去除从所述相应的映射RenderingHints
,经由Iterator.remove
, Set.remove
, removeAll
retainAll
和clear
操作。
它不支持add
或addAll
操作。
public Collection<Object> values()
Collection
视图包含在这个值的RenderinHints
。
该Collection
由支持RenderingHints
,所以对变化RenderingHints
反映在Collection
,反之亦然。
如果RenderingHints
被修改,而在迭代Collection
正在进行中,迭代的结果是不确定的。
所述Collection
支持元素移除,其去除从所述相应的映射RenderingHints
,经由Iterator.remove
, Collection.remove
, removeAll
, retainAll
和clear
操作。
它不支持add
或addAll
操作。
public Set<Map.Entry<Object,Object>> entrySet()
Set
视图包含在此映射的RenderingHints
。
返回的Set
中的每个元素都是Map.Entry
。
该Set
由支持RenderingHints
,所以对变化RenderingHints
反映在Set
,反之亦然。
如果RenderingHints
的同时,同时在迭代改进Set
正在进行中,迭代的结果是不确定的。
从RenderingHints
对象返回的entrySet不可修改。
public boolean equals(Object o)
Object
与此RenderingHints
进行比较以获得相等性。
如果指定的对象也是Map
,并且两个Map
对象表示相同的映射,则返回true
。
更正式地,两个Map
对象t1
和t2
表示相同的映射,如果t1.keySet().equals(t2.keySet())
和k
中的每个键t1.keySet()
,
(t1.get(k)==null ? t2.get(k)==null : t1.get(k).equals(t2.get(k)))
。
这样可确保equals
方法在Map接口的不同实现中Map
工作。
public int hashCode()
RenderingHints
的哈希码值。
RenderingHints
的哈希码被定义为RenderingHints
对象的entrySet视图中每个Entry
的RenderingHints
的总和。
这确保t1.equals(t2)
意味着t1.hashCode()==t2.hashCode()
对于任何两个Map
对象t1
和t2
,根据t2
的一般合同的Object.hashCode
。
hashCode
在界面
Map<Object,Object>
hashCode
在
Object
RenderingHints
。
Map.Entry.hashCode()
,
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)
public Object clone()
RenderingHints
具有相同的内容,因为这对象
RenderingHints
对象。