隨筆-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 閱讀(2328) 評論(1)  編輯  收藏 所屬分類: Java

          評論:
          # re: JAVA縮放圖片(轉貼) 2010-04-07 20:24 | moguji
          希望能用  回復  更多評論
            
          MSN:envoydada@hotmail.com QQ:34935442
          主站蜘蛛池模板: 安图县| 孟津县| 集贤县| 桃江县| 芜湖县| 澜沧| 原平市| 肃南| 建平县| 绥江县| 丰台区| 上犹县| 聊城市| 鹤山市| 沾化县| 信丰县| 邵东县| 当涂县| 吉安县| 出国| 武清区| 太白县| 广安市| 社旗县| 宁晋县| 行唐县| 泸溪县| 静乐县| 沐川县| 介休市| 大竹县| 肃南| 郑州市| 日喀则市| 名山县| 碌曲县| 巴林右旗| 铁力市| 兴城市| 盘锦市| 宁波市|