<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0

    縮略圖實現,將圖片(jpg,gif,bmp等等)真實的變成想要的大小
    import java.io.*;
    import java.util.*;
    import com.sun.image.codec.jpeg.*;
    import java.awt.image.*;
    import java.awt.*;
    import java.net.*;
    import java.applet.*;
    import java.sql.*;
    //縮略圖類,
    //本java類能將jpg圖片文件,進行等比或非等比的大小轉換。
    //具體使用方法
    //s_pic(大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文名,生成小圖片寬度,生成小圖片高度,是否等比縮放(默認為true))
    public class Small_pic{
    String InputDir; //輸入圖路徑
    String OutputDir; //輸出圖路徑
    String InputFileName; //輸入圖文件名
    String OutputFileName; //輸出圖文件名
    int OutputWidth=80; //默認輸出圖片寬
    int OutputHeight=80; //默認輸出圖片高
    int rate=0;
    boolean proportion=true; //是否等比縮放標記(默認為等比縮放)

    public Small_pic(){
    //初始化變量
    InputDir="";
    OutputDir="";
    InputFileName="";
    OutputFileName="";
    OutputWidth=80;
    OutputHeight=80;
    rate=0;
    }

    public void setInputDir(String InputDir){
    this.InputDir=InputDir;
    }

    public void setOutputDir(String OutputDir){
    this.OutputDir=OutputDir;
    }

    public void setInputFileName(String InputFileName){
    this.InputFileName=InputFileName;
    }

    public void setOutputFileName(String OutputFileName){
    this.OutputFileName=OutputFileName;
    }

    public void setOutputWidth(int OutputWidth){
    this.OutputWidth=OutputWidth;
    }

    public void setOutputHeight(int OutputHeight){
    this.OutputHeight=OutputHeight;
    }

    public void setW_H(int width,int height){
    this.OutputWidth=width;
    this.OutputHeight=height;
    }

    public String s_pic(){
    BufferedImage image;
    String NewFileName;
    //建立輸出文件對象
    File file = new File(OutputDir+OutputFileName);
    FileOutputStream tempout =null;
    try{
    tempout= new FileOutputStream(file);
    }catch(Exception ex){
    System.out.println(ex.toString());
    }
    Image img=null;
    Toolkit tk=Toolkit.getDefaultToolkit();
    Applet app=new Applet();
    MediaTracker mt = new MediaTracker(app);
    try {
    img=tk.getImage(InputDir+InputFileName);
    mt.addImage(img, 0);
    mt.waitForID(0);
    }catch(Exception e) {
    e.printStackTrace();
    }

    if(img.getWidth(null)==-1){
    System.out.println(" can't read,retry!"+"<BR>");
    return "no";
    }else{
    int new_w;
    int new_h;
    if (this.proportion==true) //判斷是否是等比縮放.
    {
    //為等比縮放計算輸出的圖片寬度及高度
    double rate1=((double)img.getWidth(null))/(double)OutputWidth+0.1;
    double rate2=((double)img.getHeight(null))/(double)OutputHeight+0.1;
    double rate=rate1>rate2?rate1:rate2;
    new_w=(int)(((double)img.getWidth(null))/rate);
    new_h=(int)(((double)img.getHeight(null))/rate);
    }
    else{
    new_w=OutputWidth; //輸出的圖片寬度
    new_h=OutputHeight; //輸出的圖片高度
    }
    BufferedImage buffImg = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);

    Graphics g = buffImg.createGraphics();

    g.setColor(Color.white);
    g.fillRect(0,0,new_w,new_h);

    g.drawImage(img,0,0,new_w,new_h,null);
    g.dispose();

    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);
    try{
    encoder.encode(buffImg);
    tempout.close();
    }catch(IOException ex){
    System.out.println(ex.toString());
    }
    }
    return "ok";
    }

    public String s_pic(String InputDir,String OutputDir,String InputFileName,String OutputFileName){
    //輸入圖路徑
    this.InputDir=InputDir;
    //輸出圖路徑
    this.OutputDir=OutputDir;
    //輸入圖文件名
    this.InputFileName=InputFileName;
    //輸出圖文件名
    this.OutputFileName=OutputFileName;
    return s_pic();
    }

    public String s_pic(String InputDir,String OutputDir,String InputFileName,String OutputFileName,int width,int height,boolean gp){
    //輸入圖路徑
    this.InputDir=InputDir;
    //輸出圖路徑
    this.OutputDir=OutputDir;
    //輸入圖文件名
    this.InputFileName=InputFileName;
    //輸出圖文件名
    this.OutputFileName=OutputFileName
    //設置圖片長寬
    setW_H(width,height);
    //是否是等比縮放 標記
    this.proportion=gp;
    return s_pic();
    }
    public static void main(String [] a)
    {
    //s_pic(大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文名,生成小圖片寬度,生成小圖片高度)
    Small_pic mypic =new Small_pic();
    System.out.println(
    mypic.s_pic("E:\\JAVA\\J2EEDatum\\王亮jsp資料\\縮圖例子\\personal\\",
    "E:\\JAVA\\J2EEDatum\\酒劍仙jsp資料\\縮圖例子\\personal\\",
    "1.jpg","new1.jpg",80,80,true)
    );
    }


    posted on 2006-07-06 17:36 SIMONE 閱讀(356) 評論(0)  編輯  收藏 所屬分類: JAVA 、JSP
    主站蜘蛛池模板: 热99RE久久精品这里都是精品免费 | 亚洲色成人网一二三区| 午夜性色一区二区三区免费不卡视频 | 99久久免费观看| 亚洲AV日韩AV天堂一区二区三区| 一级白嫩美女毛片免费| 国产亚洲av片在线观看18女人| 热re99久久6国产精品免费| 亚洲熟女综合色一区二区三区| 国产亚洲美女精品久久久2020| 国产92成人精品视频免费| 91精品成人免费国产| 国产成人精品日本亚洲网址| 亚洲人成影院在线观看 | 亚洲爆乳无码专区| 3d动漫精品啪啪一区二区免费| 亚洲GV天堂无码男同在线观看| 国产亚洲一区二区在线观看| 精品国产无限资源免费观看| 七次郎成人免费线路视频| 亚洲好看的理论片电影| 男人的天堂亚洲一区二区三区 | 午夜一级免费视频| 一区二区三区免费在线视频 | 亚洲最大免费视频网| 色拍自拍亚洲综合图区| 国产91免费在线观看| 亚洲中文无码永久免费| 波多野结衣中文一区二区免费| av网站免费线看| 亚洲高清在线视频| 中文字幕无码视频手机免费看| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲黄片手机免费观看| 精品亚洲永久免费精品| 亚洲天堂免费在线| 亚洲国产精品第一区二区三区| 未满十八18禁止免费无码网站| 亚洲暴爽av人人爽日日碰| 亚洲色婷婷六月亚洲婷婷6月| 中文字幕无码不卡免费视频|