RenderingHints 类定义和管理键和关联值的集合,这些键和关联值允许应用程序为其他执行渲染和图像处理服务的类使用的算法选择提供输入。 Graphics2D 类以及实现 BufferedImageOp 和 RasterOp 的类都提供了获取和可能设置单个或一组 RenderingHints 键及其关联值的方法。当这些实现执行任何渲染或图像处理操作时,它们应该检查调用者请求的任何 RenderingHints 的值,并相应地调整所使用的算法并尽其所能。
请注意,由于这些键和值是提示没有要求给定的实现支持下面指出的所有可能的选择,或者它可以响应修改其算法选择的请求。各种提示键的值也可以交互,这样虽然在一种情况下支持给定键的所有变体,但当与其他键关联的值被修改时,实现可能会受到更多限制。例如,某些实现可能能够在关闭抗锯齿提示时提供多种类型的抖动,但在开启抗锯齿时几乎无法控制抖动。全套支持的键和提示也可能因目的地而异,因为运行时可能使用不同的底层模块来呈现到屏幕、BufferedImage 对象或打印时。
实现可以完全忽略提示,但应尝试使用尽可能接近请求的实现算法。如果一个实现在任何值用于关联的提示键时支持给定的算法,那么当该键的值是指定算法的确切值时,它必须至少这样做。
用于控制提示的键都是特殊值,它们是关联的 RenderingHints.Key 类的子类。许多常见的提示在下面表示为此类中的静态常量,但该列表并不意味着详尽无遗。其他包可以通过定义新对象来创建其他提示,这些新对象是 Key 类的子类并定义关联值。
-
内部类总结
内部类 -
字段摘要
字段修饰符和类型Field描述static final RenderingHints.KeyAlpha 插值提示键。static final RenderingHints.Key抗锯齿提示键。static final RenderingHints.Key颜色渲染提示键。static final RenderingHints.Key抖动提示键。static final RenderingHints.Key字体小数指标提示键。static final RenderingHints.Key插值提示键。static final RenderingHints.Key渲染提示键。static final RenderingHints.Key图像分辨率变量提示键。static final RenderingHints.Key笔划归一化控制提示键。static final RenderingHints.Key文本抗锯齿提示键。static final RenderingHints.KeyLCD文字对比渲染提示键。static final ObjectAlpha 插值提示值——alpha 混合算法由实现选择,以实现性能与质量的良好权衡。static final ObjectAlpha 插值提示值——选择 alpha 混合算法时会优先考虑精度和视觉质量。static final ObjectAlpha 插值提示值——选择 alpha 混合算法时优先考虑计算速度。static final Object抗锯齿提示值——渲染是使用实现选择的默认抗锯齿模式完成的。static final Object抗锯齿提示值——渲染是在没有抗锯齿的情况下完成的。static final Object抗锯齿提示值——渲染是用抗锯齿完成的。static final Object颜色渲染提示值——执行由实现选择的颜色转换计算,以表示性能和准确性之间的最佳可用权衡。static final Object颜色渲染提示值——以最高精度和视觉质量执行颜色转换计算。static final Object颜色渲染提示值——以最快的速度将颜色转换为输出设备的格式。static final Object抖动提示值——使用实现选择的抖动默认值。static final Object抖动提示值——渲染几何体时不抖动。static final Object抖动提示值——如果需要,在渲染几何体时抖动。static final Object字体分数指标提示值——字符字形的定位精度由实现选择。static final Object字体分数度量提示值——字符字形定位为四舍五入到像素边界的高级宽度。static final Object字体分数指标提示值——字符字形以亚像素精度定位。static final Object插值提示值——图像中 9 个附近整数坐标样本的颜色样本在X和Y中使用三次函数进行插值以生成颜色样本。static final ObjectInterpolation hint value——对图像中最近的4个整数坐标样本的颜色样本进行线性插值,产生一个颜色样本。static final ObjectInterpolation hint value——使用图像中最近邻整数坐标样本的颜色样本。static final Object呈现提示值——呈现算法由实现选择,以实现性能与质量的良好权衡。static final Object呈现提示值——选择呈现算法时优先考虑输出质量。static final Object呈现提示值——选择呈现算法时优先考虑输出速度。static final Object图像分辨率变体提示值——始终使用图像的标准分辨率。static final Object图像分辨率变体提示值——基于默认启发式选择图像分辨率变体,这可能取决于平台的策略static final Object图像分辨率变体提示值——仅根据屏幕的 DPI 选择图像分辨率变体。static final Object图像分辨率变体提示值——根据屏幕的 DPI 和 Graphics2D 上下文中的转换选择图像分辨率变体。static final Object笔划归一化控制提示值——根据给定实现中的权衡,可以修改或保留几何图形。static final Object笔划归一化控制提示值——应归一化几何图形以提高线条的均匀性或间距以及整体美感。static final Object笔划归一化控制提示值——几何图形应保持不变并以亚像素精度呈现。static final Object文本抗锯齿提示值——文本渲染是根据KEY_ANTIALIASING提示或实现选择的默认值完成的。static final Object文本抗锯齿提示值 - 请求文本呈现以使用字体资源中的信息,该信息为每个磅值指定是应用VALUE_TEXT_ANTIALIAS_ON还是VALUE_TEXT_ANTIALIAS_OFF。static final ObjectText antialiasing hint value -- 请求为 LCD 显示器优化文本显示,子像素按 B、G、R 的显示从左到右的顺序排列,这样水平子像素分辨率是全像素水平分辨率 (HBGR) 的三倍.static final ObjectText antialiasing hint value -- 要求文本显示为 LCD 显示器优化显示,子像素按 R、G、B 的显示从左到右的顺序排列,这样水平子像素分辨率是全像素水平分辨率 (HRGB) 的三倍.static final Object文本抗锯齿提示值——请求为 LCD 显示器优化文本显示,从显示顶部到底部的 B、G、R 的子像素组织使得垂直子像素分辨率是全像素垂直分辨率 (VBGR) 的三倍。static final Object文本抗锯齿提示值——请求为 LCD 显示器优化文本显示,从显示顶部到底部的 R、G、B 子像素组织使得垂直子像素分辨率是全像素垂直分辨率 (VRGB) 的三倍。static final Object文本抗锯齿提示值——文本渲染是在没有任何形式的抗锯齿的情况下完成的。static final Object文本抗锯齿提示值——文本呈现是通过某种形式的抗锯齿完成的。 -
构造方法总结
构造方法构造方法描述RenderingHints(RenderingHints.Key key, Object value) 使用指定的键/值对构造一个新对象。RenderingHints(Map<RenderingHints.Key, ?> init) 使用从指定的 Map 对象初始化的键和值构造一个新对象,该对象可能为 null。 -
方法总结
修饰符和类型方法描述voidadd(RenderingHints hints) 将指定RenderingHints对象中的所有键和对应值添加到此RenderingHints对象。voidclear()清除所有键/值对的这个RenderingHints对象。clone()创建此RenderingHints对象的克隆,其内容与此RenderingHints对象相同。booleancontainsKey(Object key) 如果此RenderingHints包含指定键的映射,则返回true。booleancontainsValue(Object value) 如果此 RenderingHints 将一个或多个键映射到指定值,则返回 true。entrySet()返回此RenderingHints中包含的映射的Set视图。boolean比较指定的Object与此RenderingHints是否相等。返回指定键映射到的值。inthashCode()返回此RenderingHints的哈希码值。booleanisEmpty()如果此RenderingHints不包含键值映射,则返回true。keySet()返回此RenderingHints中包含的密钥的Set视图。将指定的key映射到此RenderingHints对象中指定的value。void将所有映射从指定的Map复制到此RenderingHints。从此RenderingHints对象中删除键及其对应的值。intsize()返回此RenderingHints中键值映射的数量。toString()返回hash map的相当长的字符串表示形式,其中包含此RenderingHints对象的键到值的映射。values()返回此RenderingHints中包含的值的Collection视图。在接口 java.util.Map 中声明的方法
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
字段详细信息
-
KEY_ANTIALIASING
抗锯齿提示键。ANTIALIASING提示控制Graphics2D对象的几何渲染方法是否会尝试减少形状边缘的锯齿伪影。典型的抗锯齿算法的工作原理是,根据估计的形状部分像素重写范围,将形状边界上像素的现有颜色与请求的填充颜料混合。
此提示的允许值是
-
VALUE_ANTIALIAS_ON
抗锯齿提示值——渲染是用抗锯齿完成的。- 参见:
-
VALUE_ANTIALIAS_OFF
抗锯齿提示值——渲染是在没有抗锯齿的情况下完成的。- 参见:
-
VALUE_ANTIALIAS_DEFAULT
抗锯齿提示值——渲染是使用实现选择的默认抗锯齿模式完成的。- 参见:
-
KEY_RENDERING
渲染提示键。RENDERING提示是一个通用提示,它提供了一个高级建议,即在评估权衡时是否更偏向算法选择以提高速度或质量。任何渲染或图像处理操作都可以参考此提示,但决策通常会优先考虑其他更具体的提示,而不是此提示。此提示的允许值是
-
VALUE_RENDER_SPEED
呈现提示值——选择呈现算法时优先考虑输出速度。- 参见:
-
VALUE_RENDER_QUALITY
呈现提示值——选择呈现算法时优先考虑输出质量。- 参见:
-
VALUE_RENDER_DEFAULT
呈现提示值——呈现算法由实现选择,以实现性能与质量的良好权衡。- 参见:
-
KEY_DITHERING
抖动提示键。DITHERING提示控制在存储到具有有限颜色分辨率的目的地时接近接近颜色的程度。某些渲染目标可能支持有限数量的颜色选择,这些颜色选择可能无法准确表示在渲染操作期间可能产生的全部颜色范围。对于这样的目的地,
DITHERING提示控制是否使用单个像素值的平面实心填充完成渲染,这是最接近所请求的受支持颜色,或者形状是否将填充颜色模式,这些颜色模式结合起来可以更好地近似于那个颜色。此提示的允许值是
-
VALUE_DITHER_DISABLE
抖动提示值——渲染几何体时不抖动。- 参见:
-
VALUE_DITHER_ENABLE
抖动提示值——如果需要,在渲染几何体时抖动。- 参见:
-
VALUE_DITHER_DEFAULT
抖动提示值——使用实现选择的抖动默认值。- 参见:
-
KEY_TEXT_ANTIALIASING
文本抗锯齿提示键。TEXT_ANTIALIASING提示可以独立于用于形状渲染的选择来控制文本抗锯齿算法的使用。通常,应用程序可能只想对文本使用抗锯齿,而不对其他形状使用抗锯齿。此外,用于减少文本混叠伪影的算法通常比那些为一般渲染开发的算法更复杂,因此此提示键提供了额外的值,可以控制某些特定于文本的算法的选择。如果留在DEFAULT状态,此提示通常会遵循常规KEY_ANTIALIASING提示键的值。此提示的允许值是
-
VALUE_TEXT_ANTIALIAS_ON
文本抗锯齿提示值——文本呈现是通过某种形式的抗锯齿完成的。- 参见:
-
VALUE_TEXT_ANTIALIAS_OFF
文本抗锯齿提示值——文本渲染是在没有任何形式的抗锯齿的情况下完成的。- 参见:
-
VALUE_TEXT_ANTIALIAS_DEFAULT
文本抗锯齿提示值——文本渲染是根据KEY_ANTIALIASING提示或实现选择的默认值完成的。- 参见:
-
VALUE_TEXT_ANTIALIAS_GASP
文本抗锯齿提示值 - 请求文本呈现以使用字体资源中的信息,该信息为每个磅值指定是应用VALUE_TEXT_ANTIALIAS_ON还是VALUE_TEXT_ANTIALIAS_OFF。TrueType 字体通常在“gasp”表中提供此信息。在没有此信息的情况下,特定字体和大小的行为由实现默认值确定。
笔记:字体设计师通常会仔细暗示最常见的用户界面磅值的字体。因此,'gasp' 表可能会指定仅使用暗示这些大小而不是“平滑”。所以在很多情况下,结果文本显示等同于
VALUE_TEXT_ANTIALIAS_OFF。这可能出乎意料,但却是正确的。由多种物理字体组成的逻辑字体为了保持一致性将使用最适合整体复合字体的设置。
- 自从:
- 1.6
- 参见:
-
VALUE_TEXT_ANTIALIAS_LCD_HRGB
Text antialiasing hint value -- 要求文本显示为 LCD 显示器优化显示,子像素按 R、G、B 的显示从左到右的顺序排列,这样水平子像素分辨率是全像素水平分辨率 (HRGB) 的三倍.这是最常见的配置。为具有其他 LCD 子像素配置之一的显示器选择此提示可能会导致文本不聚焦。笔记:
选择是否应用任何 LCD 文本提示值时的实现可能会考虑多种因素,包括要求目标颜色深度至少为每像素 15 位(即每个颜色组件 5 位)、字体特性(例如是否嵌入式位图可能会产生更好的结果,或者当显示到非本地网络显示设备时,只有在合适的协议可用时才启用它,或者如果执行非常高分辨率的渲染或目标设备不合适则忽略提示:例如打印时。在渲染到软件图像时同样可以应用这些提示,但这些图像可能不适合一般导出,因为文本将针对特定的子像素组织进行适当渲染。有损图像也不是一个好的选择,GIF 等颜色有限的图像格式也不是。因此,除非图像仅用于在具有相同配置的显示设备上呈现,否则某些其他文本抗锯齿提示(例如
VALUE_TEXT_ANTIALIAS_ON)可能是更好的选择。选择与所用 LCD 显示屏不匹配的值可能会导致文本质量下降。在不具有与 LCD 显示器相同特性的显示设备(即 CRT)上,整体效果可能看起来类似于标准文本抗锯齿,但质量可能会因颜色失真而降低。模拟连接的 LCD 显示器也可能与标准文本抗锯齿相比没有什么优势,并且类似于 CRT。
换句话说,为了获得最佳效果,请使用带有数字显示连接器的 LCD 显示器并指定适当的子像素配置。
- 自从:
- 1.6
- 参见:
-
VALUE_TEXT_ANTIALIAS_LCD_HBGR
Text antialiasing hint value -- 请求为 LCD 显示器优化文本显示,子像素按 B、G、R 的显示从左到右的顺序排列,这样水平子像素分辨率是全像素水平分辨率 (HBGR) 的三倍.这是一种比 HRGB 更不常见的配置。为具有其他 LCD 子像素配置之一的显示器选择此提示可能会导致文本不聚焦。有关何时应用此提示的更多信息,请参阅VALUE_TEXT_ANTIALIAS_LCD_HRGB。- 自从:
- 1.6
- 参见:
-
VALUE_TEXT_ANTIALIAS_LCD_VRGB
文本抗锯齿提示值——请求为 LCD 显示器优化文本显示,从显示顶部到底部的 R、G、B 子像素组织使得垂直子像素分辨率是全像素垂直分辨率 (VRGB) 的三倍。垂直方向非常少见,可能主要用于物理旋转显示。为具有其他 LCD 子像素配置之一的显示器选择此提示可能会导致文本不聚焦。有关何时应用此提示的更多信息,请参阅VALUE_TEXT_ANTIALIAS_LCD_HRGB。- 自从:
- 1.6
- 参见:
-
VALUE_TEXT_ANTIALIAS_LCD_VBGR
文本抗锯齿提示值——请求为 LCD 显示器优化文本显示,从显示顶部到底部的 B、G、R 的子像素组织使得垂直子像素分辨率是全像素垂直分辨率 (VBGR) 的三倍。垂直方向非常少见,可能主要用于物理旋转显示。为具有其他 LCD 子像素配置之一的显示器选择此提示可能会导致文本不聚焦。有关何时应用此提示的更多信息,请参阅VALUE_TEXT_ANTIALIAS_LCD_HRGB。- 自从:
- 1.6
- 参见:
-
KEY_TEXT_LCD_CONTRAST
LCD文字对比渲染提示键。该值是一个Integer对象,当与VALUE_TEXT_ANTIALIAS_LCD_HRGB等 LCD 文本抗锯齿提示结合使用时,该对象用作文本对比度调整。- 值应该是 100 到 250 范围内的正整数。
- 当在浅色背景上显示深色文本时,较低的值(例如 100)对应于较高对比度的文本。
- 当在浅色背景上显示深色文本时,较高的值(例如 200)对应于较低对比度的文本。
- 典型的有用值在 140-180 的窄范围内。
- 如果未指定值,将应用系统或实现默认值。
- 自从:
- 1.6
- 参见:
-
KEY_FRACTIONALMETRICS
字体小数指标提示键。FRACTIONALMETRICS提示控制单个字符字形的定位是否考虑到字体缩放字符前进的亚像素精度,或者是否将此类前进矢量四舍五入为整个设备像素的整数。此提示仅建议应使用多少精度来定位字形,而不指定或建议是否应修改字形的实际光栅化或像素边界以匹配。将文本呈现到屏幕等低分辨率设备必然会涉及大量舍入操作,因为字符字形的形状和度量的高质量和非常精确的定义必须与离散的设备像素相匹配。理想情况下,文本布局期间字形的定位将通过根据磅值缩放字体中的设计指标来计算,但缩放后的前进宽度不一定是整数像素。如果字形根据这些缩放设计指标以亚像素精度定位,那么理想情况下需要针对每个可能的亚像素原点调整光栅化。
不幸的是,在文本布局期间将自定义的每个字形缩放到其精确的子像素原点将非常昂贵,因此通常使用基于整数设备位置的简化系统来布置文本。字形的光栅化和缩放的前进宽度都一起调整,以产生在设备分辨率下看起来不错的文本,并且字形之间具有一致的整数像素距离,有助于字形看起来均匀一致地间隔和可读。
这种将光栅化字形的前进宽度四舍五入为整数距离的过程意味着字符密度和文本字符串的总长度将与理论设计测量不同,这是由于每个调整宽度的一系列微小差异的累积字形。每个字形的具体差异都不同,有些比它们的理论设计尺寸更宽,有些更窄。因此,字符密度和长度的总体差异将因许多因素而异,包括字体、目标特定设备分辨率以及选择用来表示正在呈现的字符串的字形。因此,以多种设备分辨率呈现相同的字符串可能会为整个字符串产生广泛不同的指标。
当启用
FRACTIONALMETRICS时,真正的字体设计指标按点大小缩放,并用于具有亚像素精度的布局。因此,字形的平均密度和一长串字符的总长度将更接近于字体的理论设计,但可读性可能会受到影响,因为各个字符对可能看起来并不总是保持一致的距离,具体取决于子-字形起源的像素累积与设备像素网格相匹配。当执行的文本布局必须在各种输出分辨率之间保持一致时,可能需要启用此提示。具体来说,在文本布局正在低分辨率设备(如输出屏幕)上预览最终将在高分辨率打印机或排版设备上呈现的情况下,可能需要此提示。禁用时,缩放的设计指标将四舍五入或调整为布局的整数距离。任何特定字形对之间的距离在设备上会更加统一,但长字符串的密度和总长度可能不再符合字体设计者的理论意图。禁用此提示通常会在计算机显示器等低分辨率设备上产生更易读的结果。
此键的允许值是
-
VALUE_FRACTIONALMETRICS_OFF
字体分数度量提示值——字符字形定位为四舍五入到像素边界的高级宽度。- 参见:
-
VALUE_FRACTIONALMETRICS_ON
字体分数指标提示值——字符字形以亚像素精度定位。- 参见:
-
VALUE_FRACTIONALMETRICS_DEFAULT
字体分数指标提示值——字符字形的定位精度由实现选择。- 参见:
-
KEY_INTERPOLATION
插值提示键。INTERPOLATION提示控制在图像渲染操作期间如何过滤或重新采样图像像素。隐式定义图像以在整数坐标位置提供颜色样本。当图像在没有缩放到目的地的情况下直立渲染时,选择哪些图像像素映射到哪些设备像素是显而易见的,并且图像中整数坐标位置的样本被传输到设备像素上相应整数位置的像素网格一对一。当图像在缩放、旋转或以其他方式变换的坐标系中渲染时,设备像素坐标映射回图像可能会引发一个问题,即对于位于所提供的整数位置之间的连续坐标使用什么颜色样本图像样本。插值算法定义了一些函数,这些函数根据周围整数坐标处的颜色样本为图像中的任何连续坐标提供颜色样本。
此提示的允许值是
-
VALUE_INTERPOLATION_NEAREST_NEIGHBOR
Interpolation hint value——使用图像中最近邻整数坐标样本的颜色样本。从概念上讲,图像被视为以每个图像像素的中心为中心的单位大小的正方形颜色区域网格。当图像按比例放大时,它看起来会相应地呈块状。当图像按比例缩小时,源像素的颜色将不加修改地使用,或者在输出表示中完全跳过。
- 参见:
-
VALUE_INTERPOLATION_BILINEAR
Interpolation hint value——对图像中最近的4个整数坐标样本的颜色样本进行线性插值,产生一个颜色样本。从概念上讲,图像被视为一组无限小的点颜色样本,这些样本仅在整数坐标像素的中心具有值,并且这些像素中心之间的空间充满了以直线连接相邻离散样本的线性渐变颜色。当图像按比例放大时,图像中的颜色之间没有像
NEAREST_NEIGHBOR那样的块状边缘,但是混合可能会沿水平和垂直边缘显示一些细微的不连续性,这些不连续性与由于突然变化引起的样本对齐从样本的一侧到另一侧的插值斜率。随着图像按比例缩小,更多图像像素的颜色样本在结果输出中表示,因为每个输出像素接收来自多达 4 个图像像素的颜色信息。- 参见:
-
VALUE_INTERPOLATION_BICUBIC
插值提示值——图像中 9 个附近整数坐标样本的颜色样本在X和Y中使用三次函数进行插值以生成颜色样本。从概念上讲,图像的视图与BILINEAR算法中使用的视图非常相似,只是样本之间连接的颜色渐变是弯曲的,并且在跨越样本边界时具有更好的斜率连续性。随着图像按比例放大,没有块状边缘,插值应该看起来更平滑,并且比
BILINEAR更好地描绘原始图像中的任何边缘。随着图像按比例缩小,来自原始图像的更多原始颜色样本将传递和表示其颜色信息。- 参见:
-
KEY_ALPHA_INTERPOLATION
Alpha 插值提示键。ALPHA_INTERPOLATION提示是一个通用提示,它提供了关于在评估权衡时是否将 alpha 混合算法选择更多地偏向于速度或质量的高级建议。此提示可以控制 alpha 混合计算的选择,这些计算会牺牲一些精度以使用快速查找表或较低精度的 SIMD 指令。此提示还可以控制在计算期间是否将颜色和 alpha 值转换为线性颜色空间以获得更线性的视觉效果,但代价是额外的每像素计算。
此提示的允许值是
-
VALUE_ALPHA_INTERPOLATION_SPEED
Alpha 插值提示值——选择 alpha 混合算法时优先考虑计算速度。- 参见:
-
VALUE_ALPHA_INTERPOLATION_QUALITY
Alpha 插值提示值——选择 alpha 混合算法时会优先考虑精度和视觉质量。- 参见:
-
VALUE_ALPHA_INTERPOLATION_DEFAULT
Alpha 插值提示值——alpha 混合算法由实现选择,以实现性能与质量的良好权衡。- 参见:
-
KEY_COLOR_RENDERING
颜色渲染提示键。COLOR_RENDERING提示控制将颜色存储到目标图像或表面时近似和转换的准确性。当渲染或图像处理操作产生必须存储到目标中的颜色值时,它必须首先将该颜色转换为适合存储到目标图像或表面中的形式。最低限度,必须将颜色组件转换为位表示并以正确的顺序排序,或者必须选择颜色查找表的索引,然后才能将数据存储到目标内存中。如果没有这种最小的转换,目标中的数据可能代表随机、不正确甚至可能不受支持的值。将渲染操作的结果快速转换为最常见目的地的颜色格式的算法是众所周知的,并且执行起来相当优化。
简单地执行最基本的颜色格式转换以将颜色存储到目标中可能会忽略源和目标的
ColorSpace校准差异或其他因素,例如伽马校正的线性度。除非源和目标ColorSpace相同,否则要正确执行渲染操作并最注意所表示颜色的准确性,源颜色应转换为独立于设备的ColorSpace,然后将结果转换回目标ColorSpace.此外,如果要在渲染操作期间执行多种源颜色的混合等计算,如果选择中间设备独立ColorSpace在计算的值和感知的值之间具有线性关系,则可以实现更大的视觉清晰度人眼对输出设备的响应曲线。此提示的允许值是
-
VALUE_COLOR_RENDER_SPEED
颜色渲染提示值——以最快的速度将颜色转换为输出设备的格式。- 参见:
-
VALUE_COLOR_RENDER_QUALITY
颜色渲染提示值——以最高精度和视觉质量执行颜色转换计算。- 参见:
-
VALUE_COLOR_RENDER_DEFAULT
颜色渲染提示值——执行由实现选择的颜色转换计算,以表示性能和准确性之间的最佳可用权衡。- 参见:
-
KEY_STROKE_CONTROL
笔划归一化控制提示键。STROKE_CONTROL提示控制渲染实现是否应该或允许出于各种目的修改渲染形状的几何形状。一些实现可能能够使用优化的平台渲染库,它可能比给定平台上的传统软件渲染算法更快,但也可能不支持浮点坐标。某些实现可能还具有复杂的算法,这些算法会扰乱路径的坐标,从而使宽线在宽度和间距上显得更加均匀。
如果一个实现对路径执行任何类型的修改或“规范化”,它不应该在任何方向上将坐标移动超过半个像素。
此提示的允许值是
- 自从:
- 1.3
-
VALUE_STROKE_DEFAULT
笔划归一化控制提示值——根据给定实现中的权衡,可以修改或保留几何图形。通常,此设置允许实现使用基于快速整数坐标的平台渲染库,但不特别要求标准化以实现统一性或美观性。- 自从:
- 1.3
- 参见:
-
VALUE_STROKE_NORMALIZE
笔划归一化控制提示值——应归一化几何图形以提高线条的均匀性或间距以及整体美感。请注意,对于给定的输入路径,不同的归一化算法可能比其他算法更成功。- 自从:
- 1.3
- 参见:
-
VALUE_STROKE_PURE
笔划归一化控制提示值——几何图形应保持不变并以亚像素精度呈现。- 自从:
- 1.3
- 参见:
-
KEY_RESOLUTION_VARIANT
图像分辨率变量提示键。RESOLUTION_VARIANT提示控制应为图像绘制选择哪种图像分辨率变体。- 自从:
- 9
-
VALUE_RESOLUTION_VARIANT_DEFAULT
图像分辨率变体提示值——基于默认启发式选择图像分辨率变体,这可能取决于平台的策略- 自从:
- 9
- 参见:
-
VALUE_RESOLUTION_VARIANT_BASE
图像分辨率变体提示值——始终使用图像的标准分辨率。- 自从:
- 9
- 参见:
-
VALUE_RESOLUTION_VARIANT_SIZE_FIT
图像分辨率变体提示值——根据屏幕的 DPI 和 Graphics2D 上下文中的转换选择图像分辨率变体。- 自从:
- 9
- 参见:
-
VALUE_RESOLUTION_VARIANT_DPI_FIT
图像分辨率变体提示值——仅根据屏幕的 DPI 选择图像分辨率变体。- 自从:
- 9
- 参见:
-
-
构造方法详细信息
-
RenderingHints
使用从指定的 Map 对象初始化的键和值构造一个新对象,该对象可能为 null。- 参数:
init- 用于初始化提示的键/值对映射,如果对象应为空,则为 null
-
RenderingHints
使用指定的键/值对构造一个新对象。- 参数:
key- 特定提示属性的键value- 用key指定的提示属性的值
-
-
方法详情
-
size
public int size()返回此RenderingHints中键值映射的数量。 -
isEmpty
public boolean isEmpty()如果此RenderingHints不包含键值映射,则返回true。 -
containsKey
如果此RenderingHints包含指定键的映射,则返回true。- 指定者:
containsKey在接口Map<Object,中Object> - 参数:
key- 要测试其在此RenderingHints中是否存在的密钥。- 返回:
true如果此RenderingHints包含指定键的映射。- 抛出:
ClassCastException- 如果密钥不能转换为RenderingHints.Key
-
containsValue
如果此 RenderingHints 将一个或多个键映射到指定值,则返回 true。更正式地说,返回true当且仅当此RenderingHints包含至少一个映射到值v使得(value==null ? v==null : value.equals(v))
。对于RenderingHints的大多数实现,此操作可能需要时间与RenderingHints大小成线性关系。- 指定者:
containsValue在接口Map<Object,中Object> - 参数:
value- 要测试其在这个RenderingHints中的存在的值。- 返回:
true如果此RenderingHints将一个或多个键映射到指定值。
-
get
返回指定键映射到的值。- 指定者:
get在接口Map<Object,中Object> - 参数:
key- 渲染提示键- 返回:
-
此对象中键映射到的值,如果键未映射到此对象中的任何值,则返回
null。 - 抛出:
ClassCastException- 如果密钥不能转换为RenderingHints.Key- 参见:
-
put
将指定的key映射到此RenderingHints对象中指定的value。键和值都不能是null。可以通过使用与原始键相同的键调用get方法来检索该值。- 指定者:
put在接口Map<Object,中Object> - 参数:
key- 渲染提示键。value- 呈现提示值。- 返回:
-
此对象中指定键的先前值,如果没有则为
null。 - 抛出:
NullPointerException- 如果密钥是null。ClassCastException- 如果密钥不能转换为RenderingHints.KeyIllegalArgumentException- 如果指定键的Key.isCompatibleValue()方法对指定值返回 false- 参见:
-
add
将指定RenderingHints对象中的所有键和对应值添加到此RenderingHints对象。此RenderingHints对象中存在但不在指定RenderingHints对象中的键不受影响。- 参数:
hints- 要添加到此RenderingHints对象的一组键/值对
-
clear
public void clear()清除所有键/值对的这个RenderingHints对象。 -
remove
从此RenderingHints对象中删除键及其对应的值。如果密钥不在此RenderingHints对象中,则此方法不执行任何操作。- 指定者:
remove在接口Map<Object,中Object> - 参数:
key- 需要移除的渲染提示键- 返回:
-
键先前在此
RenderingHints对象中映射到的值,或者null如果键没有映射。 - 抛出:
ClassCastException- 如果密钥不能转换为RenderingHints.Key
-
putAll
将所有映射从指定的Map复制到此RenderingHints。这些映射替换了此RenderingHints对指定Map中当前任何键的任何映射。- 指定者:
putAll在接口Map<Object,中Object> - 参数:
m- 指定的Map- 抛出:
ClassCastException- 指定Map中键或值的类阻止它存储在此RenderingHints中。IllegalArgumentException- 指定Map中键或值的某些方面阻止它存储在此RenderingHints中。
-
keySet
返回此RenderingHints中包含的密钥的Set视图。 Set 由RenderingHints支持,因此对RenderingHints的更改反映在Set中,反之亦然。如果在对Set进行迭代时修改了RenderingHints,则迭代的结果是不确定的。Set支持元素删除,它通过Iterator.remove、Set.remove、removeAll retainAll和clear操作从RenderingHints删除相应的映射。它不支持add或addAll操作。 -
values
返回此RenderingHints中包含的值的Collection视图。Collection由RenderingHints支持,因此对RenderingHints的更改反映在Collection中,反之亦然。如果在对Collection进行迭代时修改了RenderingHints,则迭代的结果是不确定的。Collection支持元素删除,它通过Iterator.remove、Collection.remove、removeAll、retainAll和clear操作从RenderingHints删除相应的映射。它不支持add或addAll操作。 -
entrySet
返回此RenderingHints中包含的映射的Set视图。返回的Set中的每个元素都是一个Map.Entry。Set由RenderingHints支持,因此对RenderingHints的更改反映在Set中。如果在对Set进行迭代时修改了RenderingHints,则迭代的结果是不确定的。从
RenderingHints对象返回的 entrySet 不可修改。 -
equals
比较指定的Object与此RenderingHints是否相等。如果指定的对象也是Map并且两个Map对象表示相同的映射,则返回true。更正式地说,两个Map对象t1和t2表示相同的映射,如果t1.keySet().equals(t2.keySet())和t1.keySet(),(t1.get(k)==null ? t2.get(k)==null : t1.get(k).equals(t2.get(k)))
中的每个键k。这可确保equals方法在Map接口的不同实现中正常工作。 -
hashCode
public int hashCode()返回此RenderingHints的哈希码值。RenderingHints的哈希码被定义为RenderingHints对象的 entrySet 视图中每个Entry的哈希码的总和。这确保t1.equals(t2)暗示t1.hashCode()==t2.hashCode()对于任何两个Map对象t1和t2,正如Object.hashCode的总合同所要求的那样。 -
clone
创建此RenderingHints对象的克隆,其内容与此RenderingHints对象相同。 -
toString
返回hash map的相当长的字符串表示形式,其中包含此RenderingHints对象的键到值的映射。
-