隨筆-86  評論-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         // 假設圖片寬 高 最大為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) 評論(1)  編輯  收藏 所屬分類: Java

          評論:
          # re: JAVA縮放圖片(轉貼) 2010-04-07 20:24 | moguji
          希望能用  回復  更多評論
            
          MSN:envoydada@hotmail.com QQ:34935442
          主站蜘蛛池模板: 沭阳县| 蒲城县| 威海市| 瑞金市| 兰溪市| 三明市| 兴海县| 万安县| 永州市| 滕州市| 金湖县| 南通市| 乌鲁木齐县| 贡嘎县| 旬阳县| 大新县| 卢龙县| 怀仁县| 清河县| 兴仁县| 遵化市| 益阳市| 手游| 祥云县| 梨树县| 汕头市| 锦屏县| 昭通市| 玛沁县| 乌兰察布市| 厦门市| 蓬安县| 天等县| 富宁县| 余庆县| 日照市| 廊坊市| 隆化县| 堆龙德庆县| 会同县| 沈阳市|