隨筆-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
          主站蜘蛛池模板: 安庆市| 德格县| 平舆县| 贡觉县| 宁阳县| 准格尔旗| 鄂州市| 枣强县| 通榆县| 疏附县| 克什克腾旗| 晋州市| 白水县| 靖边县| 保靖县| 东台市| 马边| 荥阳市| 化德县| 庆阳市| 区。| 宁阳县| 富宁县| 蓬莱市| 巴青县| 邳州市| 开平市| 哈巴河县| 武穴市| 石嘴山市| 宣武区| 昆山市| 满洲里市| 新邵县| 沐川县| 丰顺县| 资源县| 汉寿县| 蓝山县| 新巴尔虎右旗| 霞浦县|