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

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

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

    隨筆-60  評論-35  文章-15  trackbacks-0
    import ?java.io. * ;
    import ?java.awt. * ;
    import ?java.awt.image. * ;
    import ?com.sun.image.codec.jpeg. * ;
    /**
    ?*
    ?*?<p>Title:?Thumbnail</p>
    ?*
    ?*?<p>Description:?Picture?Thumbnail</p>
    ?*
    ?*?<p>Copyright:?Copyright?(c)?54powerman@163.com?2005</p>
    ?*
    ?*?<p>Company:?
    http://blog.sina.com.cn/u1055000490 </p>
    ?*
    ?*?
    @author ?54powerman
    ?*?
    @version ?1.0
    ?
    */

    public ? class ?Thumbnail? {
    ??
    private ?String?srcFile;
    ??
    private ?String?destFile;
    ??
    private ? int ?width;
    ??
    private ? int ?height;
    ??
    private ?Image?img;
    ??
    public ? static ? void ?main(String[]?args)? throws ?Exception? {
    ????Thumbnail?thum?
    = ? new ?Thumbnail( " Winter.png " );
    ????thum.resizeFix(
    500 ,? 300 );
    ??}

    ??
    /**
    ???*?構造函數
    ???*?
    @param ?fileName?String
    ???*?
    @throws ?IOException
    ???
    */

    ??
    public ?Thumbnail(String?fileName)? throws ?IOException? {
    ????File?_file?
    = ? new ?File(fileName);? // 讀入文件
    ???? this .srcFile? = ?_file.getName();
    ????
    this .destFile? = ? this .srcFile.substring( 0 ,? this .srcFile.lastIndexOf( " . " ))? +
    ????????
    " _s.jpg " ;
    ????img?
    = ?javax.imageio.ImageIO.read(_file);? // 構造Image對象
    ????width? = ?img.getWidth( null );? // 得到源圖寬
    ????height? = ?img.getHeight( null );? // 得到源圖長
    ??}

    ??
    /**
    ???*?強制壓縮/放大圖片到固定的大小
    ???*?
    @param ?w?int?新寬度
    ???*?
    @param ?h?int?新高度
    ???*?
    @throws ?IOException
    ???
    */

    ??
    public ? void ?resize( int ?w,? int ?h)? throws ?IOException? {
    ????BufferedImage?_image?
    = ? new ?BufferedImage(w,?h,
    ?????????????????????????????????????????????BufferedImage.TYPE_INT_RGB);
    ????_image.getGraphics().drawImage(img,?
    0 ,? 0 ,?w,?h,? null );? // 繪制縮小后的圖
    ????FileOutputStream?out? = ? new ?FileOutputStream(destFile);? // 輸出到文件流
    ????JPEGImageEncoder?encoder? = ?JPEGCodec.createJPEGEncoder(out);
    ????encoder.encode(_image);?
    // 近JPEG編碼
    ????out.close();
    ??}

    ??
    /**
    ???*?按照固定的比例縮放圖片
    ???*?
    @param ?t?double?比例
    ???*?
    @throws ?IOException
    ???
    */

    ??
    public ? void ?resize( double ?t)? throws ?IOException? {
    ????
    int ?w? = ?( int )?(width? * ?t);
    ????
    int ?h? = ?( int )?(height? * ?t);
    ????resize(w,?h);
    ??}

    ??
    /**
    ???*?以寬度為基準,等比例放縮圖片
    ???*?
    @param ?w?int?新寬度
    ???*?
    @throws ?IOException
    ???
    */

    ??
    public ? void ?resizeByWidth( int ?w)? throws ?IOException? {
    ????
    int ?h? = ?( int )?(height? * ?w? / ?width);
    ????resize(w,?h);
    ??}

    ??
    /**
    ???*?以高度為基準,等比例縮放圖片
    ???*?
    @param ?h?int?新高度
    ???*?
    @throws ?IOException
    ???
    */

    ??
    public ? void ?resizeByHeight( int ?h)? throws ?IOException? {
    ????
    int ?w? = ?( int )?(width? * ?h? / ?height);
    ????resize(w,?h);
    ??}

    ??
    /**
    ???*?按照最大高度限制,生成最大的等比例縮略圖
    ???*?
    @param ?w?int?最大寬度
    ???*?
    @param ?h?int?最大高度
    ???*?
    @throws ?IOException
    ???
    */

    ??
    public ? void ?resizeFix( int ?w,? int ?h)? throws ?IOException? {
    ????
    if ?(width? / ?height? > ?w? / ?h)? {
    ??????resizeByWidth(w);
    ????}

    ????
    else ? {
    ??????resizeByHeight(h);
    ????}

    ??}

    ??
    /**
    ???*?設置目標文件名
    ???*?setDestFile
    ???*?
    @param ?fileName?String?文件名字符串
    ???
    */

    ??
    public ? void ?setDestFile(String?fileName)? throws ?Exception? {
    ????
    if ?( ! fileName.endsWith( " .jpg " ))? {
    ??????
    throw ? new ?Exception( " Dest?File?Must?end?with?\ " .jpg\ " . " );
    ????}

    ????destFile?
    = ?fileName;
    ??}

    ??
    /**
    ???*?獲取目標文件名
    ???*?getDestFile
    ???
    */

    ??
    public ?String?getDestFile()? {
    ????
    return ?destFile;
    ??}

    ??
    /**
    ???*?獲取圖片原始寬度
    ???*?getSrcWidth
    ???
    */

    ??
    public ? int ?getSrcWidth()? {
    ????
    return ?width;
    ??}

    ??
    /**
    ???*?獲取圖片原始高度
    ???*?getSrcHeight
    ???
    */

    ??
    public ? int ?getSrcHeight()? {
    ????
    return ?height;
    ??}

    }
    posted on 2006-04-04 17:06 Q系列類、方法、變量…… 閱讀(1583) 評論(1)  編輯  收藏 所屬分類: 網上工具代碼

    評論:
    # re: Java縮略圖類 2008-07-21 22:43 | kangwei
    謝謝!我還沒有運行  回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产精品碰碰| 国产美女精品久久久久久久免费| 免费一级特黄特色大片在线 | 成年性生交大片免费看| 亚洲国产一区二区三区青草影视 | 污污视频网站免费观看| 国产成人免费永久播放视频平台| 亚洲丰满熟女一区二区哦| 成人毛片免费观看视频大全| 久久久久精品国产亚洲AV无码| 成视频年人黄网站免费视频| 亚洲卡一卡2卡三卡4麻豆| 国产免费久久精品99re丫y| 亚洲日韩AV一区二区三区四区 | 无码免费午夜福利片在线| 亚洲日韩国产精品乱-久| 影音先锋在线免费观看| 国产成人亚洲午夜电影| 国内精品99亚洲免费高清| 免费观看男人吊女人视频| 亚洲精品午夜久久久伊人| 手机在线毛片免费播放| 色偷偷亚洲第一综合| 中文字幕亚洲无线码| 67194国产精品免费观看| 亚洲欧洲日产国码久在线| 亚洲av无码天堂一区二区三区| 中国国产高清免费av片| 亚洲国产精品张柏芝在线观看| 女人与禽交视频免费看| jizz在线免费播放| 91在线亚洲精品专区| 精品国产免费观看一区| 成人免费av一区二区三区| 亚洲视频国产视频| 国产性生交xxxxx免费| 日本一区午夜艳熟免费| 亚洲色偷偷综合亚洲av78| 久久精品国产精品亚洲下载| 最近免费字幕中文大全视频| 男男gvh肉在线观看免费|