RenderingHints 参数
您還可以為下面的鍵提供微調:
鍵描述KEY_ANTIALIASING決定是否使用抗鋸齒。當著色有傾斜角度的線時,通常會得到一組階梯式的像素排列,使這條線看上去不平滑,經常被稱為 鋸齒狀圖形。抗鋸齒是一種技術,它設置有傾斜角度的線的像素亮度,以使線看起來更平滑。因此,這個微調是用來決定在著色有傾斜角度的線時是否在減少鋸齒狀圖形上花費時間。可能的值有 VALUE_ANTIALIAS_ON, _OFF 或 _DEFAULT。KEY_COLOR_RENDERING控制顏色著色的方式。可能的值有 VALUE_COLOR_RENDER_SPEED, _QUALITY 或 _DEFAULT。KEY_DITHERING控制如何處理抖動。抖動是用一組有限的顏色合成出一個更大范圍的顏色的過程,方法是給相鄰像素著色以產生不在該組顏色中的新的顏色幻覺。可能的值有 VALUE_DITHER_ENABLE, _DISABLE 或 _DEFAULT。KEY_FRACTIONALMETRICS控制顯示文本的質量。可能的值有 VALUE_FRACTIONALMETRICS_ON, _OFF 或 _DEFAULT。KEY_INTERPOLATION確定怎樣做內插。
在對一個源圖像做變形時,變形后的像素很少能夠恰好對應目標像素位置。在這種情況下,每個變形后的像素的顏色值不得不由四周的像素決定。
內插就是實現上述過程。有許多可用的技術。可能的值,按處理時間從最多到最少,是 VALUE_INTERPOLATION_BICUBIC, _BILINEAR 或 _NEAREST_NEIGHBOR。KEY_RENDERING確定著色技術,在速度和質量之間進行權衡。可能的值有 VALUE_RENDERING_SPEED, _QUALITY 或 _DEFAULT。KEY_TEXT_ANTIALIASING確定對文本著色時是否抗鋸齒。可能的值有 VALUE_TEXT_ANTIALIASING_ON, _OFF 或 _DEFAULT。
使用java.awt.RenderingHints類設置參數,改善圖片質量
?
如果想設置幾個呈現提示(RenderingHints),可以多次調用setRenderHint,或者創建值的完整映射,并使用Graphics2D的setRenderingHints方法一次把它們都設置好。java.awt.RenderingHints類 javadoc文檔連接:
http://gceclub.sun.com.cn/Java_Docs/jdk6/docs/zh/api/java/awt/RenderingHints.html
一般使用的代碼如下:
????????????????????????????????????????????????????????RenderingHints.?VALUE_ANTIALIAS_ON);
rh.put(RenderingHints.KEY_STROKE_CONTROL
??????????????,?RenderingHints.VALUE_STROKE_PURE);
rh.put(RenderingHints.KEY_ALPHA_INTERPOLATION
??????????????,?RenderingHints.ALPHA_INTERPOLATION_QUALITY);
g2d.setRenderingHints(rh);
找出一個給定系統的方法是判斷特定的繪制硬件(比如顯卡)在系統中是否可用,假設有一個假想的isAccelerated方法告訴系統是否可以使用一種類型的圖像加速。下面的代碼允許根據isAccelerated方法的結果來設置提示:
//假設renderQuality是RenderingHints的私有類成員
if(isAccelerated()){
???????renderQuality=new?RenderingHints(RenderingHints.?KEY_RENDERING,?
???????????????????????????????????????????????????????????????RenderingHints.?VALUE_RENDER_QUALITY);
}else{
???????renderQuality=new?RenderingHints(RenderingHints.?KEY_RENDERING,?
???????????????????????????????????????????????????????????????RenderingHints.?VALUE_RENDER_SPEED);
}
這樣設置后比沒有設置效果會好點。但是和acdsee等圖片工具看起來還有差距。比較奇怪還需要設置什么參數才能優化圖片質量。。。
另外,關于性能今天看到的一篇文章有點作用。。
現在圖片預覽一樣存在Jprofile的大量內存使用的問題.
看到javatar的blog: http://javatar.javaeye.com/blog/41098
提及使用第三方的包 JMagicK: http://www.yeo.id.au/jmagick/ (Java接口)
生成圖片預覽的方法,因為目前項目面臨上線的壓力如果改變另外一種實現方式等于是從根部重構,面臨測試的壓力。。
總結
以上是生活随笔為你收集整理的RenderingHints 参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起来看看java正则表达式
- 下一篇: java中synchronized的用法