日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RenderingHints 参数

發布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RenderingHints 参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
RenderingHints 類定義了多種著色微調,它們存儲在一個映射集的 Graphics2D 對象里。 setRenderingHint() 方法的參數是一個鍵以及對應的鍵值。在我們的代碼中,第一個參數是代表 alpha 合成微調的鍵,第二個參數是該微調的值。該微調的其它可能的值有 VALUE_ALPHA_INTERPOLATION_DEFAULT,代表平臺缺省值;以及 VALUE_ALPHA_INTERPOLATION_SPEED,代表追求速度而不是質量。

  您還可以為下面的鍵提供微調:

  鍵描述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?rh=new?RenderingHints(RenderingHints.?KEY_ANTIALIASING,
????????????????????????????????????????????????????????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 参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。