RenderingHints
类定义和管理键和相关值的集合,允许应用程序提供输入以选择其他执行渲染和图像处理服务的类使用的算法。 Graphics2D
类,以及实现BufferedImageOp
和RasterOp
的类都提供方法来获取并可能设置单个或一组RenderingHints
键及其相关值。 当这些实现执行任何渲染或图像处理操作时,它们应该检查调用者请求的任何RenderingHints
的值,并相应地调整所使用的算法,尽力而为。
请注意,由于这些键和值是“提示”,并没有要求给定的实现支持下面指示的所有可能选择,或者它可以响应修改其算法选择的请求。 各种提示键的值也可能相互作用,因此,虽然在一种情况下支持给定键的所有变体,但在修改与其他键关联的值时,实现可能更受限制。 例如,一些实现在抗锯齿提示关闭时可能能够提供几种类型的抖动,但在抗锯齿打开时对抖动的控制可能较少。 支持的键和提示的完整集合也可能因目标而异,因为运行时可能使用不同的底层模块来渲染到屏幕,或者到BufferedImage
对象,或者在打印时。
实现可以完全忽略这些提示,但应尽量使用与请求尽可能接近的实现算法。 如果一个实现支持给定算法,当使用与关联提示键的值的任何值时,最低限度上它必须在该键的值为指定算法的确切值时这样做。
用于控制提示的键都是特殊值,它们是与关联的RenderingHints.Key
类的子类。 许多常见提示在这个类中表示为静态常量,但这个列表并不是详尽无遗的。 其他提示可能由其他包创建,方法是定义新对象,这些对象是Key
类的子类,并定义相关值。
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
定义了与RenderingHints
类一起使用的所有键的基本类型,以控制渲染和图像处理管道中的各种算法选择。 -
Field Summary
Modifier and TypeFieldDescriptionstatic final RenderingHints.Key
Alpha插值提示键。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.Key
LCD文本对比度渲染提示键。static final Object
Alpha插值提示值 -- 实现会选择一种性能与质量之间的良好权衡的alpha混合算法。static final Object
Alpha插值提示值 -- 实现会选择一种偏好于精度和视觉质量的alpha混合算法。static final Object
Alpha插值提示值 -- 实现会选择一种偏好于计算速度的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 Object
插值提示值 -- 图像中4个最近邻的整数坐标样本的颜色样本线性插值以产生一个颜色样本。static final Object
插值提示值 -- 使用图像中最近邻的整数坐标样本的颜色样本。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 Object
文本抗锯齿提示值 -- 请求文本显示为针对LCD显示进行优化,其次像素从左到右为B、G、R,使得水平次像素分辨率是完整像素水平分辨率的三倍(HBGR)。static final Object
文本抗锯齿提示值 -- 请求文本显示为针对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
文本抗锯齿提示值 -- 文本渲染使用某种形式的抗锯齿。 -
Constructor Summary
ConstructorDescriptionRenderingHints
(RenderingHints.Key key, Object value) 使用指定的键/值对构造一个新对象。RenderingHints
(Map<RenderingHints.Key, ?> init) 使用从指定Map对象初始化的键和值构造一个新对象,该Map对象可能为null。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(RenderingHints hints) 将指定的RenderingHints
对象中的所有键和相应的值添加到此RenderingHints
对象中。void
clear()
清除此RenderingHints
对象的所有键/值对。clone()
创建一个与此RenderingHints
对象内容相同的克隆对象。boolean
containsKey
(Object key) 如果此RenderingHints
包含指定键的映射,则返回true
。boolean
containsValue
(Object value) 如果此RenderingHints将一个或多个键映射到指定值,则返回true。entrySet()
返回此RenderingHints
中包含的映射的Set
视图。boolean
将指定的Object
与此RenderingHints
进行比较以检查是否相等。返回指定键映射到的值。int
hashCode()
返回此RenderingHints
的哈希码值。boolean
isEmpty()
如果此RenderingHints
不包含键值映射,则返回true
。keySet()
返回此RenderingHints
中包含的键的Set
视图。在此RenderingHints
对象中将指定的key
映射到指定的value
。void
将指定的Map
中的所有映射复制到此RenderingHints
中。从此RenderingHints
对象中删除键及其对应的值。int
size()
返回此RenderingHints
中键-值映射的数量。toString()
返回此RenderingHints
对象的哈希映射的字符串表示形式,其中包含键到值的映射。values()
返回包含此RenderingHints
中的值的Collection
视图。Methods declared in interface java.util.Map
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Field Details
-
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
文本抗锯齿提示值--请求文本显示为针对LCD显示进行优化,其次像素从左到右显示为R、G、B,使水平次像素分辨率是完整像素水平分辨率的三倍(HRGB)。这是最常见的配置。在具有其他LCD次像素配置之一的显示器上选择此提示可能导致文本模糊。注意:
实现在选择是否应用任何LCD文本提示值时可能会考虑因素,包括要求目标的颜色深度至少为每像素15位(即每色量5位),字体的特性,例如嵌入的位图是否会产生更好的结果,或者在显示到非本地网络显示设备时仅在可用的协议时启用它,或者在执行非常高分辨率渲染或目标设备不适当时忽略提示:例如打印时。这些提示在渲染到软件图像时同样适用,但这些图像可能不适合一般导出,因为文本将根据特定次像素组织进行渲染。此外,有损图像不是一个好选择,也不是像GIF这样具有有限颜色的图像格式。因此,除非图像仅用于在具有相同配置的显示设备上呈现,否则其他文本抗锯齿提示,如
VALUE_TEXT_ANTIALIAS_ON
可能是更好的选择。选择与正在使用的LCD显示不匹配的值可能会导致文本质量下降。在不具有与LCD显示相同特性的显示设备(即CRT)上,整体效果可能类似于标准文本抗锯齿,但质量可能会因颜色失真而降低。模拟连接的LCD显示器也可能与标准文本抗锯齿类似,并类似于CRT。
换句话说,为获得最佳结果,请使用具有数字显示连接器的LCD显示器,并指定适当的次像素配置。
- Since:
- 1.6
- See Also:
-
VALUE_TEXT_ANTIALIAS_LCD_HRGB
Text antialiasing hint value -- request that text be displayed optimised for an LCD display with subpixels in order from display left to right of R,G,B such that the horizontal subpixel resolution is three times that of the full pixel horizontal resolution (HRGB). This is the most common configuration. Selecting this hint for displays with one of the other LCD subpixel configurations will likely result in unfocused text.Notes:
An implementation when choosing whether to apply any of the LCD text hint values may take into account factors including requiring color depth of the destination to be at least 15 bits per pixel (ie 5 bits per color component), characteristics of a font such as whether embedded bitmaps may produce better results, or when displaying to a non-local networked display device enabling it only if suitable protocols are available, or ignoring the hint if performing very high resolution rendering or the target device is not appropriate: eg when printing.These hints can equally be applied when rendering to software images, but these images may not then be suitable for general export, as the text will have been rendered appropriately for a specific subpixel organisation. Also lossy images are not a good choice, nor image formats such as GIF which have limited colors. So unless the image is destined solely for rendering on a display device with the same configuration, some other text anti-aliasing hint such as
VALUE_TEXT_ANTIALIAS_ON
may be a better choice.Selecting a value which does not match the LCD display in use will likely lead to a degradation in text quality. On display devices (ie CRTs) which do not have the same characteristics as LCD displays, the overall effect may appear similar to standard text anti-aliasing, but the quality may be degraded by color distortion. Analog connected LCD displays may also show little advantage over standard text-antialiasing and be similar to CRTs.
In other words for the best results use an LCD display with a digital display connector and specify the appropriate sub-pixel configuration.
- 自从:
- 1.6
- 参见:
-
VALUE_TEXT_ANTIALIAS_LCD_HBGR
文本抗锯齿提示值 - 请求以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
对象,用作与LCD文本抗锯齿提示(如VALUE_TEXT_ANTIALIAS_LCD_HRGB
)一起使用时的文本对比度调整。- 值应为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
插值提示值 - 使用图像中最近邻整数坐标样本的颜色样本。在概念上,图像被视为围绕每个图像像素中心的单位大小的彩色区域网格。随着图像的放大,它看起来会相应地变得块状。随着图像的缩小,源像素的颜色将被保持不变,或者在输出表示中完全跳过。
- 参见:
-
VALUE_INTERPOLATION_BILINEAR
插值提示值 -- 图像中最接近的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
提示控制渲染实现是否应该或允许修改渲染形状的几何形状,以用于各种目的。一些实现可能能够使用优化的平台渲染库,这可能比给定平台上的传统软件渲染算法更快,但也可能不支持浮点坐标。一些实现还可能具有复杂的算法,这些算法会扰动路径的坐标,使宽线条在宽度和间距上看起来更加均匀。
如果实现对路径进行任何类型的修改或“规范化”,则不应将坐标移动超过半个像素的任何方向。
此提示的可接受值为
- 自 JDK 1.3 起
-
VALUE_STROKE_DEFAULT
笔画规范控制提示值 -- 几何形状可能会根据给定实现中的权衡进行修改或保持纯净。通常,此设置允许实现使用快速的基于整数坐标的平台渲染库,但不明确要求规范化以实现均匀性或美学。- 自 JDK 1.3 起
- 参见:
-
VALUE_STROKE_NORMALIZE
笔画规范控制提示值 -- 几何形状应该被规范化以改善线条的均匀性或间距以及整体美学。请注意,对于给定的输入路径,不同的规范化算法可能比其他算法更成功。- 自 JDK 1.3 起
- 参见:
-
VALUE_STROKE_PURE
笔画规范控制提示值 -- 几何形状应该保持不变,并以亚像素精度进行渲染。- 自 JDK 1.3 起
- 参见:
-
KEY_RESOLUTION_VARIANT
图像分辨率变体提示键。RESOLUTION_VARIANT
提示控制应选择哪种图像分辨率变体用于图像绘制。- 自 JDK 9 起
-
VALUE_RESOLUTION_VARIANT_DEFAULT
图像分辨率变体提示值 -- 根据默认启发式选择图像分辨率变体,这可能取决于平台的策略。- 自 JDK 9 起
- 参见:
-
VALUE_RESOLUTION_VARIANT_BASE
图像分辨率变体提示值 -- 始终使用图像的标准分辨率。- 自 JDK 9 起
- 参见:
-
VALUE_RESOLUTION_VARIANT_SIZE_FIT
图像分辨率变体提示值 - 根据屏幕的DPI和Graphics2D上下文中的变换选择图像分辨率变体。- 自 JDK 9 起:
- 9
- 参见:
-
VALUE_RESOLUTION_VARIANT_DPI_FIT
图像分辨率变体提示值 - 仅根据屏幕的DPI选择图像分辨率变体。- 自 JDK 9 起:
- 9
- 参见:
-
-
Constructor Details
-
RenderingHints
从指定的可能为null的Map对象初始化键和值构造一个新对象。- 参数:
-
init
- 一个键/值对的映射,用于初始化提示,如果对象应为空,则为null
-
RenderingHints
用指定的键/值对构造一个新对象。- 参数:
-
key
- 特定提示属性的键 -
value
- 使用key
指定的提示属性的值
-
-
Method Details
-
size
public int size()返回此RenderingHints
中键-值映射的数量。 -
isEmpty
public boolean isEmpty()如果此RenderingHints
不包含键-值映射,则返回true
。 -
containsKey
如果此RenderingHints
包含指定键的映射,则返回true
。- 指定者:
-
containsKey
接口中的方法Map<Object,
Object> - 参数:
-
key
- 要测试其在此RenderingHints
中是否存在的键 - 返回:
-
如果此
RenderingHints
包含指定键的映射,则返回true
。 - 抛出:
-
ClassCastException
- 如果无法将键转换为RenderingHints.Key
-
containsValue
如果此RenderingHints将一个或多个键映射到指定值,则返回true。更正式地说,如果此RenderingHints
包含至少一个映射到值v
的键,使得(value==null ? v==null : value.equals(v))
,则返回true
。对于大多数RenderingHints
的实现,此操作可能需要线性时间。- 指定者:
-
containsValue
接口中的方法Map<Object,
Object> - 参数:
-
value
- 要测试其在此RenderingHints
中是否存在的值 - 返回:
-
如果此
RenderingHints
将一个或多个键映射到指定值,则返回true
。
-
get
返回指定键映射到的值。- 指定者:
-
get
接口中的方法Map<Object,
Object> - 参数:
-
key
- 一个渲染提示键 - 返回:
-
此对象中键映射到的值,如果键未映射到任何值,则返回
null
。 - 抛出:
-
ClassCastException
- 如果无法将键转换为RenderingHints.Key
- 参见:
-
put
在此RenderingHints
对象中将指定的key
映射到指定的value
。键和值都不能为null
。可以通过使用等于原始键的键调用get
方法来检索值。- 指定者:
-
put
接口中的方法Map<Object,
Object> - 参数:
-
key
- 渲染提示键 -
value
- 渲染提示值 - 返回:
-
此对象中指定键的先前值,如果先前没有值,则返回
null
。 - 抛出:
-
NullPointerException
- 如果键为null
-
ClassCastException
- 如果无法将键转换为RenderingHints.Key
-
IllegalArgumentException
- 如果指定键的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()
中的每个键k
,(t1.get(k)==null ? t2.get(k)==null : t1.get(k).equals(t2.get(k)))
。这确保了equals
方法在Map
接口的不同实现之间正常工作。 -
hashCode
public int hashCode()返回此RenderingHints
的哈希码值。一个RenderingHints
的哈希码被定义为RenderingHints
对象的entrySet视图中每个Entry
的hashCode之和。这确保了对于任何两个Map
对象t1
和t2
,如果t1.equals(t2)
,则t1.hashCode()==t2.hashCode()
,这是Object.hashCode
的一般契约要求。 -
clone
创建一个与此RenderingHints
对象具有相同内容的克隆对象。 -
toString
返回包含此RenderingHints
对象的键到值的映射的哈希表的相当长的字符串表示形式。
-