JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 RenderingHints

java.lang.Object
  繼承者 java.awt.RenderingHints
所有已實作的介面:
Cloneable, Map<Object,Object>

public class RenderingHints
extends Object
implements Map<Object,Object>, Cloneable

RenderingHints 類別定義和管理鍵和關聯值的集合,它允許應用程序將輸入提供給其他類別使用的演算法選擇,這些類別執行呈現和圖像處理服務。Graphics2D 類別以及實作 BufferedImageOpRasterOp 的類別都提供了一些方法,用於獲取並可能設置單個 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
          插值提示值—— 使用 XY 中的立方函數插入圖像中整數坐標附近的 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_ONVALUE_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
 

欄位詳細資訊

KEY_ANTIALIASING

public static final RenderingHints.Key KEY_ANTIALIASING
抗鋸齒提示鍵。ANTIALIASING 提示控制 Graphics2D 物件的幾何形狀呈現方法是否將嘗試沿形狀的邊緣減少鋸齒現象。

典型抗鋸齒演算法的工作方式如下:根據估計的部分形狀像素覆寫率,沿形狀的邊界將像素的現有顏色與所請求的填充繪製 (fill paint) 混合在一起。

此提示允許的值有


VALUE_ANTIALIAS_ON

public static final Object VALUE_ANTIALIAS_ON
抗鋸齒提示值——使用抗鋸齒網要完成呈現。

另請參見:
KEY_ANTIALIASING

VALUE_ANTIALIAS_OFF

public static final Object VALUE_ANTIALIAS_OFF
抗鋸齒提示值——在不使用抗鋸齒網要的情況下完成呈現。

另請參見:
KEY_ANTIALIASING

VALUE_ANTIALIAS_DEFAULT

public static final Object VALUE_ANTIALIAS_DEFAULT
抗鋸齒提示值——使用由實作選擇的預設抗鋸齒網要完成呈現。

另請參見:
KEY_ANTIALIASING

KEY_RENDERING

public static final RenderingHints.Key KEY_RENDERING
呈現提示鍵。RENDERING 提示是一個提供高層級建議的常規提示,目的是在進行評估權衡時提示是應該選擇更偏重於速度,還是選擇更偏重於質量的演算法。任何呈現或圖像處理操作都可以參考此提示,但是決定通常會遵照其他優先於此提示的更明確的提示。

此提示允許的值有


VALUE_RENDER_SPEED

public static final Object VALUE_RENDER_SPEED
呈現提示值——選擇偏重輸出速度的呈現演算法。

另請參見:
KEY_RENDERING

VALUE_RENDER_QUALITY

public static final Object VALUE_RENDER_QUALITY
呈現提示值——選擇偏重輸出質量的呈現演算法。

另請參見:
KEY_RENDERING

VALUE_RENDER_DEFAULT

public static final Object VALUE_RENDER_DEFAULT
呈現提示值——由實作選擇對性能和質量進行良好權衡的呈現演算法。

另請參見:
KEY_RENDERING

KEY_DITHERING

public static final RenderingHints.Key KEY_DITHERING
抖動提示鍵。DITHERING 提示控制著在將顏色存儲到顏色分辨率受限制的目標中時,所選顏色的近似程度。

一些呈現目標支持的顏色選擇數可能受到限制,它也許無法準確地表示在呈現操作過程中產生的顏色的完整色譜。對於這類別目標,DITHERING 提示控制著是否使用最接近於所請求的受支持顏色的單個像素值的普通固定填充方式來完成呈現,或者是否使用組合的顏色網要來填充形狀,以便更好地接近於該顏色。

此提示允許的值有


VALUE_DITHER_DISABLE

public static final Object VALUE_DITHER_DISABLE
抖動提示值——呈現幾何形狀時不抖動。

另請參見:
KEY_DITHERING

VALUE_DITHER_ENABLE

public static final Object VALUE_DITHER_ENABLE
抖動提示值——如果需要,在呈現幾何形狀時抖動。

另請參見:
KEY_DITHERING

VALUE_DITHER_DEFAULT

public static final Object VALUE_DITHER_DEFAULT
抖動提示值——對該實作選擇的抖動使用預設值。

另請參見:
KEY_DITHERING

KEY_TEXT_ANTIALIASING

public static final RenderingHints.Key KEY_TEXT_ANTIALIASING
文本抗鋸齒提示鍵。TEXT_ANTIALIASING 提示可以控制文本抗鋸齒演算法的使用,這與形狀呈現的選擇無關。通常,應用程序只希望對文本而不是其他形狀使用抗鋸齒。此外,用於減少文本鋸齒現象的演算法通常比那些為常規呈現而開發的演算法更複雜,所以,此提示鍵提供了其他一些值,這些值可以控制某些特定於文本的演算法的選擇。如果保持在 DEFAULT 狀態下,此提示通常遵從常規 KEY_ANTIALIASING 提示鍵的值。

此提示允許的值有


VALUE_TEXT_ANTIALIAS_ON

public static final Object VALUE_TEXT_ANTIALIAS_ON
文本抗鋸齒提示值——使用某種抗鋸齒形式完成文本呈現。

另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_OFF

public static final Object VALUE_TEXT_ANTIALIAS_OFF
文本抗鋸齒提示值——不使用任何抗鋸齒形式完成文本呈現。

另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_DEFAULT

public static final Object VALUE_TEXT_ANTIALIAS_DEFAULT
文本抗鋸齒提示值——根據 KEY_ANTIALIASING 提示或由實作選擇的預設值完成文本呈現。

另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_GASP

public static final Object VALUE_TEXT_ANTIALIAS_GASP
文本抗鋸齒提示值——文本呈現需要使用字體資源中的資訊,這些資訊指定了每個點大小是否適合應用 VALUE_TEXT_ANTIALIAS_ONVALUE_TEXT_ANTIALIAS_OFF

TrueType 字體通常在 'gasp' 表中提供此資訊。在沒有此資訊的情況下,特定字體和大小的行為由實作預設值確定。

註:字體設計者通常慎重地針對大多數普通使用者介面的點大小提示某一種字體。因此,'gasp' 表有可能指定只針對這些大小而不是所有大小使用提示。所以,在許多情況下,得到的文本顯示等效於 VALUE_TEXT_ANTIALIAS_OFF。這可能無法預料,但它是正確的。

出於一致性目的,由多種物理字體組成的邏輯字體將使用最適合於總體復合字體的設置。

從以下版本開始:
1.6
另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_LCD_HRGB

public static final Object VALUE_TEXT_ANTIALIAS_LCD_HRGB
文本抗鋸齒提示值——要求針對 LCD 顯示器優化文本顯示,該 LCD 顯示器子像素按從左到右為 R、G、B 的順序顯示,從而使水平子像素分辨率是全部水平像素分辨率 (HRGB) 的三倍。這是最常用的配置。為具有其他 LCD 子像素配置的顯示器選擇此提示將可能導致沒有焦點的文本。

註:
在選擇是否應用任何 LCD 文本提示值時,實作可能考慮多種因素,這些因素包括要求目標的顏色深度至少要為每像素 15 位(即每個顏色份量為 5 位);字體特徵(如內嵌位圖是否可以產生更好的結果);在顯示到非本地網路顯示設備時,是否只在有合適的協議可用時才啟用它;如果執行非常高的分辨率呈現或目標設備不合適時(如列印時),是否忽略提示。

這些提示在呈現到軟體圖像時同樣可以應用,但這些圖像可能不適合於常規導出,因為文本將針對特定子像素組織進行適當地呈現。此外,有損失的圖像和圖像格式(如顏色受到限制的 GIF)不是一個好選擇。所以,除非圖像注定要在具有相同配置的顯示設備上呈現,否則,其他一些文本抗鋸齒提示(如 VALUE_TEXT_ANTIALIAS_ON)也許是更好的選擇。

在使用時選擇與 LCD 顯示器不比對的值可能導致文本質量的下降。在不具備與 LCD 顯示器相同特徵的顯示設備(即 CRT)上,整體效果可能類似於標準文本抗鋸齒,但質量可能因顏色失真而降低。模擬連接的 LCD 顯示器也沒有表現出比標準文本抗鋸齒更好的地方,類似於 CRT。

換句話說,為了得到最好的結果,需使用帶有數字顯示連接器的 LCD 顯示器並指定合適的子像素配置。

從以下版本開始:
1.6
另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_LCD_HBGR

public static final Object VALUE_TEXT_ANTIALIAS_LCD_HBGR
文本抗鋸齒提示值——要求針對 LCD 顯示器優化文本顯示,子像素按從左到右為 B、G、R 的順序顯示,從而使水平子像素分辨率是全部水平像素分辨率 (HBGR) 的三倍。與 HRGB 相比,這種配置不常見。為具有其他 LCD 子像素配置的顯示器選擇此提示將可能導致沒有焦點的文本。有關何時應用此提示的更多資訊,請參閱 VALUE_TEXT_ANTIALIAS_LCD_HRGB

從以下版本開始:
1.6
另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_LCD_VRGB

public static final Object VALUE_TEXT_ANTIALIAS_LCD_VRGB
文本抗鋸齒提示值——要求針對 LCD 顯示器優化文本顯示,子像素組織按從頂部到底部為 R、G、B 的順序顯示,從而使垂直子像素分辨率是全部垂直像素分辨率 (VRGB) 的三倍。垂直方向比較少見,可能主要對物理旋轉的顯示器有用。為具有其他 LCD 子像素配置的顯示器選擇此提示將可能導致沒有焦點的文本。有關何時應用此提示的更多資訊,請參閱 VALUE_TEXT_ANTIALIAS_LCD_HRGB

從以下版本開始:
1.6
另請參見:
KEY_TEXT_ANTIALIASING

VALUE_TEXT_ANTIALIAS_LCD_VBGR

public static final Object VALUE_TEXT_ANTIALIAS_LCD_VBGR
文本抗鋸齒提示值——要求針對 LCD 顯示器優化文本顯示,子像素組織按從頂部到底部為 R、G、B 的順序顯示,從而使垂直子像素分辨率是全部垂直像素分辨率 (VBGR) 的三倍。垂直方向比較少見,可能主要對物理地旋轉顯示有用。為具有其他 LCD 子像素配置的顯示選擇此提示將可能導致沒有焦點的文本。有關何時應用此提示的更多資訊,請參閱 VALUE_TEXT_ANTIALIAS_LCD_HRGB

從以下版本開始:
1.6
另請參見:
KEY_TEXT_ANTIALIASING

KEY_TEXT_LCD_CONTRAST

public static final RenderingHints.Key KEY_TEXT_LCD_CONTRAST
LCD 文本對比呈現提示鍵。此值是一個 Integer 物件,在與 LCD 文本抗鋸齒提示(如 VALUE_TEXT_ANTIALIAS_LCD_HRGB)一起使用時,它被用於文本對比度調整。 預設值可以滿足大多數目的,所以客戶端幾乎都不需要指定此提示值,除非它們有關於某一合適值的具體資訊。較高的值並不意味著較高的對比度,實際上正好相反。校正以一種類似方式應用於顯示系統的非線性感知亮度回應(perceptual luminance response)的 gamma 調整,但不指示對它進行完全校正。

從以下版本開始:
1.6
另請參見:
KEY_TEXT_ANTIALIASING

KEY_FRACTIONALMETRICS

public static final RenderingHints.Key KEY_FRACTIONALMETRICS
字體小數規格提示鍵。FRACTIONALMETRICS 提示控制單個字元字形的定位是否考慮字體的縮放字元 advance 子像素的精確度,或者這類別 advance 向量是否捨入為整個設備像素的一個整數數字。此提示只建議定位字形應該使用的精度,而不指定或建議是否應為了比對而修改實際光柵化或字形的像素邊界。

將文本呈現到低分辯率的設備(如螢幕)時沒必要包括大量的捨入操作,因為字元字形的形狀與規格的高質量和非常精確的定義必須與離散設備像素相比對。理想情況下,文本佈局過程中字形的定位將根據點的大小通過縮放字體的設計規格進行計算,但縮放的 advance with 不必是像素的一個整數數字。如果根據這些縮放的設計規格使用子像素精確度對字形進行定位,則在理想情況下,光柵化需要針對每個可能的子像素原點進行調整。

不幸的是,在文本佈局過程中將每個自定義字形縮放到其實際子像素原點的代價太高,所以基於整數設備定位的簡化系統通常用於佈局文本。字形的光柵化和縮放的 advance with 在設備分辨率上都被調整,以產生看起來很好的文本,在字形之間具有一致的整數像素距離,有助於使字形看起來均勻,有一致性的距離且可讀性好。

這種將光柵化字形的 advance with 捨入為整數距離的處理意味著:由於在每個字形調整寬度中一系列小差異的累加,使得字元密度和文本字元串的整體長度不同於理論上設計的測量值。特定差異將針對每種字形而有所不同,與它們的理論設計測量值相比,一些字形比較寬,而另一些字形較窄。因此,字元密度和長度中的整體差異將因許多因素的不同而有所不同,這些因素包括字體、作為目標的特定設備分辨率以及為表示要呈現的字元串而選擇的字形。因此,對整個字元串而言,在多個設備分辨率中呈現同一個字元串可能出現很多不同的規格。

當啟用 FRACTIONALMETRICS 時,實際字體設計規格按照點大小縮放,並用於具有子像素精確度的佈局。因此,字元的字形平均密度和長字元串總長度將更接近於與字體的理論設計相比對,但是可讀性可能受影響,因為單獨的字元對可能並不是始終顯示為一致的間隔距離,這取決於字形原點子像素的累加與設備像素網格的協調方式。當正在執行必須一致地跨越多種不同輸出分辨率的文本佈局時,啟用此提示可能很合適。需要特別說明的是,在文本佈局正在低分辯率設備(如輸出螢幕)上預覽,但最終在高分辯率印表機或排版設備上呈現的情況下,此提示可能也很合適。

當禁用此提示時,縮放的設計規格針對佈局捨入或調整為整數距離。任意特定字形對之間的距離在設備上將更加統一,但是長字元串的密度和總長度可能不再與字體設計人員的理論想法相比對。在低分辯率設備(如電腦監視器)上禁用此提示通常產生更可讀的結果。

此鍵允許的值有


VALUE_FRACTIONALMETRICS_OFF

public static final Object VALUE_FRACTIONALMETRICS_OFF
字體小數規格提示值——用捨入為像素邊界的 advance width 定位字元字形。

另請參見:
KEY_FRACTIONALMETRICS

VALUE_FRACTIONALMETRICS_ON

public static final Object VALUE_FRACTIONALMETRICS_ON
字體小數規格提示值——用子像素精確度定位字元字形。

另請參見:
KEY_FRACTIONALMETRICS

VALUE_FRACTIONALMETRICS_DEFAULT

public static final Object VALUE_FRACTIONALMETRICS_DEFAULT
字體小數規格提示值——用實作選擇的精度定位字元字形。

另請參見:
KEY_FRACTIONALMETRICS

KEY_INTERPOLATION

public static final RenderingHints.Key KEY_INTERPOLATION
插值提示鍵。INTERPOLATION 提示控制在圖像呈現操作過程中如何過濾圖像像素或重新對其取樣。

圖像被隱式地定義為在整數坐標位置上提供顏色樣本。當圖像沒有縮放到目標而垂直呈現時,其圖像像素映射到其設備像素的選擇是顯而易見的,且圖像中整數坐標位置的樣本一個對一個地被轉換到設備像素網格上的相應整數位置。當圖像在縮放、旋轉或其他轉換坐標系中呈現時,圖像後面設備像素坐標的映射關係可能引起問題:所提供的圖像樣本整數位置之間的連續坐標處使用什麼顏色樣本。插值演算法定義了一些函數,它們根據整數坐標周圍的顏色樣本為圖像中的任何連續坐標提供顏色樣本。

此提示允許的值有


VALUE_INTERPOLATION_NEAREST_NEIGHBOR

public static final Object VALUE_INTERPOLATION_NEAREST_NEIGHBOR
插值提示值——使用圖像中最接近整數坐標樣本的顏色樣本。從概念上講,圖像被視為單位大小的方形顏色區域的網格,該顏色以每個圖像像素的中心為中心。

在放大圖像時,圖像看起來會相應地有些斑駁模糊。在縮小圖像時,在輸出表示中,源像素的顏色被不作修改地使用,或者完全被跳過。

另請參見:
KEY_INTERPOLATION

VALUE_INTERPOLATION_BILINEAR

public static final Object VALUE_INTERPOLATION_BILINEAR
插值提示值——圖像中最接近整數坐標樣本的 4 種顏色樣本被線性地插入,以產生一個顏色樣本。從概念上講,圖像被視為一組無窮小的點顏色樣本,其值只位於整數坐標像素的中心,而且這些像素中心之間的空間是用線性延伸的顏色填充的,並用直線連接相鄰的離散樣本。

當放大圖像時,因為有 NEAREST_NEIGHBOR,在圖像中的顏色之間沒有斑駁模糊邊緣,但是混合可能沿樣本排列的水平和垂直邊緣顯示一些微小的間斷,這是由於插值斜面從樣本的一側到另一側的突然更改造成的。當縮小圖像時,更多圖像像素具有它們自己的以結果輸出表示的顏色樣本,因為每個輸出像素都從多達 4 個圖像像素中接收顏色資訊。

另請參見:
KEY_INTERPOLATION

VALUE_INTERPOLATION_BICUBIC

public static final Object VALUE_INTERPOLATION_BICUBIC
插值提示值—— 使用 XY 中的立方函數插入圖像中整數坐標附近的 9 個樣本,以產生一個顏色樣本。從概念上講,圖像視圖非常類似於 BILINEAR 演算法中使用的視圖,區別在於連接樣本和曲線之間的顏色延伸,且當它們跨越樣本邊界時具有較好的斜面連續性。

放大圖像時,沒有斑駁模糊的邊緣,與 BILINEAR 相比,插值顯示得更光滑且原始圖像中的所有邊界都具有更好的描繪。當縮小圖像時,甚至有更多的原始圖像中的原始顏色樣本將帶有並表示它們的顏色資訊。

另請參見:
KEY_INTERPOLATION

KEY_ALPHA_INTERPOLATION

public static final RenderingHints.Key KEY_ALPHA_INTERPOLATION
Alpha 插值提示鍵。ALPHA_INTERPOLATION 提示是一個提供高層級建議的常規提示,目的是在評估權衡時提示應選擇更偏重於速度或更偏重於質量的 alpha 混合演算法。

此提示可以控制 alpha 混合演算法的選擇,它提供了使用快速尋找表或較低精度 SIMD 指令的一些精確度。在計算其他每像素成本時,此提示還控制是否在多個線性可視效果計算過程中將顏色和 alpha 值轉換到線性顏色空間。

此提示允許的值有


VALUE_ALPHA_INTERPOLATION_SPEED

public static final Object VALUE_ALPHA_INTERPOLATION_SPEED
Alpha 插值提示值——選擇偏重於計算速度的 alpha 混合演算法。

另請參見:
KEY_ALPHA_INTERPOLATION

VALUE_ALPHA_INTERPOLATION_QUALITY

public static final Object VALUE_ALPHA_INTERPOLATION_QUALITY
Alpha 插值提示值——選擇偏重於精確度和視覺質量的 alpha 混合演算法。

另請參見:
KEY_ALPHA_INTERPOLATION

VALUE_ALPHA_INTERPOLATION_DEFAULT

public static final Object VALUE_ALPHA_INTERPOLATION_DEFAULT
Alpha 插值提示值——由實作選擇對性能和質量進行良好權衡的 alpha 混合演算法

另請參見:
KEY_ALPHA_INTERPOLATION

KEY_COLOR_RENDERING

public static final RenderingHints.Key KEY_COLOR_RENDERING
顏色呈現提示鍵。COLOR_RENDERING 提示控制將顏色存儲到目標圖像或表面時近似值或轉換的精確度。

當必須將呈現或圖像處理操作產生的顏色值存儲到目標中時,首先必須將該顏色轉換為適合存儲到目標圖像或表面中的形式。必須至少將顏色份量轉換為位表示形式並以正確的順序排序,或者必須首先選擇顏色尋找表的索引,這樣資料才可以存儲到目標記憶體中。沒有這種最少的轉換,目標資料有可能表示為隨機、不正確或甚至可能不受支持的值。快速將呈現操作的結果轉換為最常見目標顏色格式的演算法已眾所周知,且執行得相當理想。

僅執行最基本的顏色格式轉換,將顏色存儲到目標,這樣做可能潛在地忽略源和目標的 ColorSpace 校準或其他因素(如 gamma 校正的直線性)的差異。除非源和目標 ColorSpace 相同,從而在正確執行呈現操作的同時最大限度地維護被表示顏色的精確度,否則應該將源顏色轉換為設備無關的 ColorSpace,然後轉換回目標 ColorSpace。此外,如果要在呈現操作過程中執行計算(如多種源顏色的混合),通過選擇與中間設備無關的 ColorSpace,使被計算的值與人眼的感知之間具有某種線性關係,以回應輸出設備曲線,那麼可以實作更加清晰的視覺。

此提示允許的值有


VALUE_COLOR_RENDER_SPEED

public static final Object VALUE_COLOR_RENDER_SPEED
顏色呈現提示值——最快地執行輸出設備格式的顏色轉換。

另請參見:
KEY_COLOR_RENDERING

VALUE_COLOR_RENDER_QUALITY

public static final Object VALUE_COLOR_RENDER_QUALITY
顏色呈現提示值——用最高的精確度和視覺質量執行顏色轉換計算。

另請參見:
KEY_COLOR_RENDERING

VALUE_COLOR_RENDER_DEFAULT

public static final Object VALUE_COLOR_RENDER_DEFAULT
顏色呈現提示值——根據實作的選擇執行顏色轉換計算,以表示可用的性能和精確度之間的最佳權衡。

另請參見:
KEY_COLOR_RENDERING

KEY_STROKE_CONTROL

public static final RenderingHints.Key KEY_STROKE_CONTROL
筆劃規範化控制提示鍵。STROKE_CONTROL 提示鍵控制呈現實作是否應該或允許出於各種目的而修改所呈現輪廓的幾何形狀。

一些實作可以使用優化的平臺呈現資源庫,在給定平臺上,它們比傳統軟體呈現演算法更快,但它們也可能不支持浮點坐標。一些實作也可以具有複雜的演算法,它們打亂路徑的坐標,以便在寬度和間距上使寬線看起來更統一。

如果實作執行任意型別的修改或路徑的“規範化”,則應當不在任何方向用半個以上像素來移動坐標。

此提示允許的值有

從以下版本開始:
1.3

VALUE_STROKE_DEFAULT

public static final Object VALUE_STROKE_DEFAULT
筆劃規範化控制提示值——根據給定實作的權衡,可以修改幾何形狀或保留原來的幾何形狀。通常情況下,此設置允許實作使用基於平臺呈現資源庫的快速整數坐標,但不特別要求均勻性或審美上的規範化。

從以下版本開始:
1.3
另請參見:
KEY_STROKE_CONTROL

VALUE_STROKE_NORMALIZE

public static final Object VALUE_STROKE_NORMALIZE
筆劃規範化控制提示值——幾何形狀應當規範化,以提高均勻性或直線間隔和整體美觀。注意,對於給定的輸入路徑,不同的規範化演算法可能比其他演算法更成功。

從以下版本開始:
1.3
另請參見:
KEY_STROKE_CONTROL

VALUE_STROKE_PURE

public static final Object VALUE_STROKE_PURE
筆劃規範化控制提示值——幾何形狀應該保持不變並使用子像素精確度呈現。

從以下版本開始:
1.3
另請參見:
KEY_STROKE_CONTROL
建構子詳細資訊

RenderingHints

public RenderingHints(Map<RenderingHints.Key,?> init)
建構一個新物件,該物件具有根據指定 Map 物件(可以為 null)初始化的鍵和值。

參數:
init - 初始化提示的鍵/值對映射;如果物件為空,則該參數為 null

RenderingHints

public RenderingHints(RenderingHints.Key key,
                      Object value)
建構一個具有指定鍵/值對的新物件。

參數:
key - 特定提示屬性的鍵
value - 用 key 指定的提示屬性的值
方法詳細資訊

size

public int size()
返回此 RenderingHints 中的鍵-值映射關係數。

指定者:
介面 Map<Object,Object> 中的 size
返回:
RenderingHints 中的鍵-值映射關係數。

isEmpty

public boolean isEmpty()
如果此 RenderingHints 未包含鍵-值映射關係,則返回 true

指定者:
介面 Map<Object,Object> 中的 isEmpty
返回:
如果此 RenderingHints 未包含鍵-值映射關係,則返回 true

containsKey

public boolean containsKey(Object key)
如果此 RenderingHints 套件含指定鍵的映射關係,則返回 true

指定者:
介面 Map<Object,Object> 中的 containsKey
參數:
key - 要測試其是否存在於此 RenderingHints 中的鍵。
返回:
如果此 RenderingHints 套件含指定鍵的映射關係,則返回 true
拋出:
ClassCastException - 如果無法將鍵強制轉換為 RenderingHints.Key

containsValue

public boolean containsValue(Object value)
如果此 RenderingHints 將一個或多個鍵映射到指定值,則返回 true。更正式地說,當且僅當此 RenderingHints 至少包含一個與滿足以下條件的值 v 的映射關係時,才返回 true
(value==null ? v==null :value.equals(v))
. 對於大部分 RenderingHints 實作而言,此操作需要的時間可能會與 RenderingHints 的大小呈線性關係。

指定者:
介面 Map<Object,Object> 中的 containsValue
參數:
value - 要測試是否存在於此 RenderingHints 中的值。
返回:
如果此 RenderingHints 將一個或多個鍵映射到指定值,則返回 true

get

public Object get(Object key)
返回指定鍵所映射的值。

指定者:
介面 Map<Object,Object> 中的 get
參數:
key - 呈現提示鍵
返回:
該鍵在此物件中所映射的值;如果該鍵沒有映射到此物件中的任何值,則返回 null
拋出:
ClassCastException - 如果無法將鍵強制轉換為 RenderingHints.Key
另請參見:
put(Object, Object)

put

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() 方法返回 false
另請參見:
get(Object)

add

public void add(RenderingHints hints)
將指定 RenderingHints 物件中的所有鍵和相應的值添加到此 RenderingHints 物件中。位於此 RenderingHints 物件中,但不在指定的 RenderingHints 物件中的鍵不受影響。

參數:
hints - 要添加到此 RenderingHints 物件中的鍵/值對的集合

clear

public void clear()
清除所有鍵/值對的 RenderingHints 物件。

指定者:
介面 Map<Object,Object> 中的 clear

remove

public Object remove(Object key)
從此 RenderingHints 物件中移除鍵和它所對應的值。如果該鍵不在此 RenderingHints 物件中,則此方法不執行任何操作。

指定者:
介面 Map<Object,Object> 中的 remove
參數:
key - 要移除的呈現提示鍵
返回:
以前在此 RenderingHints 物件中映射的鍵的值;如果鍵沒有映射關係,則返回 null
拋出:
ClassCastException - 如果無法將鍵強制轉換為 RenderingHints.Key

putAll

public void putAll(Map<?,?> m)
將指定 Map 中所有映射關係複製到此 RenderingHints 中。這些映射關係將替換此 RenderingHints 中針對指定 Map 中的當前所有鍵的所有映射關係。

指定者:
介面 Map<Object,Object> 中的 putAll
參數:
m - 指定的 Map
拋出:
ClassCastException - 指定 Map 中的鍵或值的類別不允許將其存儲在此 RenderingHints 中。
IllegalArgumentException - 如果指定 Map 中的鍵或值的某個方面不允許將其存儲在此 RenderingHints 中。

keySet

public Set<Object> keySet()
返回此 RenderingHints 中所包含鍵的 Set 視圖。Set 受 RenderingHints 的支持,所以對 RenderingHints 的更改反映在 Set 中,反之亦然。如果在對 Set 進行迭代的同時修改了 RenderingHints,則迭代的結果是不確定的。該 Set 支持元素移除,它可以通過 Iterator.removeSet.removeremoveAllretainAllclear 操作從 RenderingHints 中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 Map<Object,Object> 中的 keySet
返回:
RenderingHints 所包含鍵的 Set 視圖。

values

public Collection<Object> values()
返回此 RenderinHints 中所包含鍵的 Collection 視圖。CollectionRenderingHints 的支持,所以 RenderingHints 的更改反映在 Collection 中,反之亦然。如果在對 Collection 進行迭代的同時修改了 RenderingHints,則迭代的結果是不確定的。此 Collection 支持元素移除,它可以通過 Iterator.removeCollection.removeremoveAllretainAllclear 操作從 RenderingHints 中移除相應的映射關係。它不支持 addaddAll 操作。

指定者:
介面 Map<Object,Object> 中的 values
返回:
RenderingHints 所包含值的 Collection 視圖。

entrySet

public Set<Map.Entry<Object,Object>> entrySet()
返回此 RenderingHints 中所包含映射關係的 Set 視圖。在返回的 Set 中,每個元素都是一個 Map.EntrySetRenderingHints 的支持,所以對 RenderingHints 的更改反映在 Set 中,反之亦然。如果在對 Set 進行迭代的同時修改了 RenderingHints,則迭代的結果是不確定的。

RenderingHints 物件中返回的 entrySet 是不可修改的。

指定者:
介面 Map<Object,Object> 中的 entrySet
返回:
RenderingHints 所包含映射關係的 Set 視圖。

equals

public boolean equals(Object o)
對指定的 Object 與此 RenderingHints 進行相等性比較。如果指定對象也是一個 Map,並且這兩個 Map 物件表示相同的映射關係,則返回 true。更正式地說,如果 t1.keySet().equals(t2.keySet()),並且對於 t1.keySet() 中的每個鍵 k,都滿足以下條件,則 t1t2 這兩個 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

hashCode

public int hashCode()
返回此 RenderingHints 中的雜湊碼值。RenderingHints 的雜湊碼被定義為此 RenderingHints 物件的 entrySet 視圖中每個 Entry 的 hashCode 之和。這確保 t1.equals(t2) 意味著對於任何兩個 Map 物件 t1t2,都存在 t1.hashCode()==t2.hashCode(),這正是 Object.hashCode 的常規協定所要求的。

指定者:
介面 Map<Object,Object> 中的 hashCode
覆寫:
類別 Object 中的 hashCode
返回:
RenderingHints 的雜湊碼值。
另請參見:
Map.Entry.hashCode(), Object.hashCode(), Object.equals(Object), equals(Object)

clone

public Object clone()
創建此 RenderingHints 物件的一個副本,它與此 RenderingHints 物件具有相同的內容。

覆寫:
類別 Object 中的 clone
返回:
此實例的一個副本。
另請參見:
Cloneable

toString

public String toString()
返回 hashmap 的一個相當長的字元串表示形式,該 hashmap 套件含此 RenderingHints 物件的鍵或值的映射關係。

覆寫:
類別 Object 中的 toString
返回:
此物件的字元串表示形式。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only