隨筆-86  評(píng)論-33  文章-0  trackbacks-0
           1 package test;
           2 
           3 import java.io.File;
           4 import java.awt.image.BufferedImage;
           5 import java.awt.Image;
           6 import java.awt.image.AffineTransformOp;
           7 import javax.imageio.ImageIO;
           8 import java.awt.geom.AffineTransform;
           9 
          10 public class UploadImg{
          11 
          12     String fromdir; // fromdir 圖片的原始目錄
          13 
          14     String todir; // todir 處理后的圖片存放目錄
          15 
          16     String imgfile; // imgfile 原始圖片
          17 
          18     String sysimgfile; // sysimgfile 處理后的圖片文件名前綴
          19 
          20     UploadImg(String fromdirNow, String todirNow, String imgfileNow,
          21             String sysimgfileNow){
          22         fromdir = fromdirNow;
          23         todir = todirNow;
          24         imgfile = imgfileNow;
          25         sysimgfile = sysimgfileNow;
          26     }
          27 
          28     public boolean CreateThumbnail() throws Exception {
          29         // fileExtNmae是圖片的格式 gif JPG 或png
          30         // String fileExtNmae="";
          31         double Ratio = 0.0;
          32         File F = new File(fromdir, imgfile);
          33         if (!F.isFile())
          34             throw new Exception(F
          35                     + " is not image file error in CreateThumbnail!");
          36         File ThF = new File(todir, sysimgfile + ".jpg");
          37 
          38         BufferedImage Bi = ImageIO.read(F);
          39         // 假設(shè)圖片寬 高 最大為300 3000
          40         Image Itemp = Bi.getScaledInstance(300300, Bi.SCALE_SMOOTH);
          41 
          42         if ((Bi.getHeight() > 300|| (Bi.getWidth() > 300)){
          43             if (Bi.getHeight() > Bi.getWidth())
          44                 Ratio = 300.0 / Bi.getHeight();
          45             else
          46                 Ratio = 300.0 / Bi.getWidth();
          47         }
          48 
          49         AffineTransformOp op = new AffineTransformOp(AffineTransform
          50                 .getScaleInstance(Ratio, Ratio), null);
          51         Itemp = op.filter(Bi, null);
          52         try{
          53             ImageIO.write((BufferedImage) Itemp, "jpg", ThF);
          54         } catch (Exception ex){
          55             throw new Exception(" ImageIo.write error in CreatThum.: "
          56                     + ex.getMessage());
          57         }
          58         return (true);
          59     }
          60 
          61     public static void main(String[] args){
          62         UploadImg UI;
          63         boolean ss = false;
          64 
          65         try{
          66             UI = new UploadImg("d:\\""d:\\""src.jpg""ps_low1");
          67             ss = UI.CreateThumbnail();
          68             if (ss){
          69                 System.out.println("Success");
          70             } else{
          71                 System.out.println("Error");
          72             }
          73         } catch (Exception e){
          74             System.out.print(e.toString());
          75         }
          76     }
          77 }
          posted on 2007-08-22 11:05 Derek.Guo 閱讀(2321) 評(píng)論(1)  編輯  收藏 所屬分類: Java

          評(píng)論:
          # re: JAVA縮放圖片(轉(zhuǎn)貼) 2010-04-07 20:24 | moguji
          希望能用  回復(fù)  更多評(píng)論
            
          MSN:envoydada@hotmail.com QQ:34935442
          主站蜘蛛池模板: 分宜县| 麟游县| 阳江市| 壤塘县| 道真| 泌阳县| 攀枝花市| 大同市| 集安市| 阜城县| 琼中| 康马县| 邻水| 白城市| 扎鲁特旗| 贞丰县| 伊春市| 朔州市| 惠州市| 香河县| 贵溪市| 文昌市| 清河县| 泰顺县| 田东县| 灵石县| 通州市| 泉州市| 惠水县| 古蔺县| 寿阳县| 汾阳市| 泰安市| 宜昌市| 微山县| 云龙县| 客服| 南丹县| 元阳县| 临湘市| 两当县|