|
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。