好好生活,努力工作,天天向上!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            46 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

             以前研究過AWT的圖像處理,知道AWT在圖像處理方面的功力不淺,特別是在3D圖像處理非常擅長,不過就是API不怎么可愛,使用起來還是比較麻煩,還是覺得SWT的API比較親切,我個人對SWT也是非常感興趣,而且我們的項目也是基于SWT的。

             壓縮圖片方式要么是將格式進行轉換,比如將bmp格式轉換成jpeg格式的,這種方式是通過損失圖片質量來達到的壓縮的目的,不過jpeg格式的圖片還是比較清晰,不仔細看根本看不出什么差別。還有一種是調整圖片的分辨率,現在的數碼相機拍出來的照片分辨率都很高,我從辦事處采集的圖片發現大多數圖片格式是 3264 * 2448,大小在2.5mb左右,如果不進行壓縮處理就進行上傳,那服務器肯定受不了,經過開會討論,覺得圖片大小控制在100kb左右比較能讓服務器和用戶接受,而且要看的清楚照片中車輛的車牌號。

            這并不是什么 "不可能完成的任務" ,在我的機器上測試通過,為了方便起見,分辨率統一調成800x600,發現圖片質量還過得去:

          名稱

          壓縮前分辨率

          壓縮前大小(kb)

          壓縮后大小(kb)

          阿斯頓馬丁One-77 P10.bmp

          1027 x 768

          1537

          85

          豫P460xx.JPG

          3264 x 2448

          2083

          48

          IMG_1338.jpg

          2736 x 3648

          4428

          72

             壓縮后的格式都是JPEG格式的.

              我使用的壓縮代碼是這樣實現的:

          ImageData newImageData = new ImageData("C:/imgzip/壓縮前的圖片.jpg").scaledTo(800600);
          ImageLoader imageLoader 
          = new ImageLoader();
          imageLoader.data 
          = new ImageData[] {newImageData};
          imageLoader.save(
          "C:/imgzip/壓縮后的圖片.jpg",SWT.IMAGE_JPEG);

          先將圖片路徑傳入到ImageData的構造方法中構造一個ImageData對象,這個ImageData對象用于描述圖片的屬性,比如圖片的像素、大小、尺寸等信息,可以通過ImageData的scalaTo(int  width ,int height)方法完成圖片大小縮放,然后使用ImageLoader這個類將圖片保存到指定的路徑,還可以指定保存的格式。

             很簡單吧,說實話,我不是很相信使用AWT能夠通過這么簡單的方式完成圖片大小的縮放和壓縮,當然我是指AWT的元素API。

          posted on 2009-11-21 18:10 VWPOLO 閱讀(2234) 評論(0)  編輯  收藏 所屬分類: SWT JFace
          主站蜘蛛池模板: 南涧| 大庆市| 正蓝旗| 鸡泽县| 淮阳县| 常熟市| 天等县| 政和县| 井研县| 昌邑市| 阳信县| 个旧市| 深水埗区| 文化| 元江| 贺兰县| 安丘市| 石城县| 通城县| 政和县| 昌图县| 贞丰县| 隆回县| 双辽市| 汉中市| 巨野县| 沈阳市| 水富县| 铁岭市| 南华县| 天镇县| 郁南县| 青铜峡市| 乐陵市| 武定县| 景谷| 满洲里市| 邹平县| 成都市| 彭山县| 西林县|