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

          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 閱讀(2229) 評論(0)  編輯  收藏 所屬分類: SWT JFace
          主站蜘蛛池模板: 惠安县| 岢岚县| 万山特区| 白沙| 永胜县| 略阳县| 咸宁市| 琼海市| 思南县| 沙坪坝区| 三门峡市| 伊川县| 林州市| 抚松县| 星座| 赤水市| 香河县| 孝昌县| 宁强县| 五河县| 株洲市| 军事| 古丈县| 错那县| 莱州市| 花垣县| 和政县| 通河县| 准格尔旗| 哈尔滨市| 平昌县| 会泽县| 措勤县| 鹤峰县| 永仁县| 丁青县| 茶陵县| 浙江省| 乌鲁木齐市| 屏东县| 墨竹工卡县|