Vikings

          使用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接口)
          生成圖片預覽的方法,因為目前項目面臨上線的壓力如果改變另外一種實現方式等于是從根部重構,面臨測試的壓力。。

          posted on 2008-07-11 16:11 Vikings 閱讀(4044) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 临湘市| 永康市| 虎林市| 勃利县| 民丰县| 普兰县| 潍坊市| 天津市| 浦东新区| 理塘县| 卓资县| 松阳县| 北流市| 通道| 外汇| 铁岭市| 新和县| 鄂伦春自治旗| 黄山市| 阜城县| 喀什市| 盐津县| 安塞县| 西藏| 北安市| 广南县| 安阳市| 嘉黎县| 内江市| 汕尾市| 沁阳市| 甘泉县| 太原市| 长海县| 建平县| 木兰县| 邓州市| 密山市| 河津市| 抚松县| 乌拉特前旗|