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

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

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

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

            這并不是什么 "不可能完成的任務(wù)" ,在我的機器上測試通過,為了方便起見,分辨率統(tǒng)一調(diào)成800x600,發(fā)現(xiàn)圖片質(zhì)量還過得去:

          名稱

          壓縮前分辨率

          壓縮前大小(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格式的.

              我使用的壓縮代碼是這樣實現(xiàn)的:

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

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

          posted on 2009-11-21 18:10 VWPOLO 閱讀(2229) 評論(0)  編輯  收藏 所屬分類: SWT JFace
          主站蜘蛛池模板: 曲周县| 定安县| 阜城县| 静安区| 南开区| 凤凰县| 炉霍县| 东莞市| 汽车| 弥勒县| 宣威市| 常德市| 增城市| 常山县| 敦化市| 报价| 津市市| 中阳县| 萨嘎县| 庐江县| 密云县| 吉安市| 繁峙县| 光山县| 甘德县| 金平| 鄂托克前旗| 漾濞| 宿州市| 永春县| 邵东县| 鄂州市| 潼关县| 福贡县| 彩票| 邛崃市| 昭通市| 竹山县| 东乌珠穆沁旗| 武夷山市| 兴和县|