隨筆-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 閱讀(2320) 評(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
          主站蜘蛛池模板: 武定县| 陕西省| 洪雅县| 广州市| 金阳县| 出国| 乌恰县| 吴旗县| 沈丘县| 贵港市| 龙川县| 九台市| 浦县| 五原县| 民勤县| 石狮市| 昆明市| 平泉县| 上高县| 华宁县| 阜新市| 阜阳市| 义马市| 静海县| 白山市| 永春县| 余江县| 清新县| 施甸县| 天柱县| 望谟县| 彭州市| 富宁县| 乡城县| 什邡市| 泌阳县| 四平市| 平乡县| 遂溪县| 天峨县| 原平市|