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

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

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

    隨筆-86  評論-767  文章-3  trackbacks-3
    方法1:
    縮略圖只要10行代碼就夠了,前面介紹過N次了.自己不能往前找找嗎?

    Image src = ToolKit.getToolKit().createImage("文件路徑");
    然后先生成一個BufferedImage bi作為畫布.
    BufferedImage bi = new BufferedImage(目標寬, 目標高,BufferedImage.TYPE_INT_RGB);
    得到它的Graphics對象:
    Graphics g = bi.getGraphics();
    然后往這個畫而上畫原圖就行了:
    g.grawImage(src,0,0,目標寬,目標高,null);
    找一個編碼類,如JPEGEncoder,GIFEncoder
    把bi編碼輸出就行了.

    方法2:
    import javax.imageio.ImageIO;
    import javax.imageio.IIOException;
    import java.awt.image.BufferedImage;
    import java.awt.Image;
    import java.io.File;
    import java.awt.image.AffineTransformOp;
    import java.awt.geom.AffineTransform;

    public class Test {

    ??? public static void main (String argv[]) {
    ??????? try {
    ??????????? File fi = new File("C:/1.jpg"); //大圖文件
    ??????????? File fo = new File("C:/2.jpg"); //將要轉(zhuǎn)換出的小圖文件

    ??????????? AffineTransform transform = new AffineTransform();
    ??????????? BufferedImage bis = ImageIO.read(fi);

    ??????????? int w = bis.getWidth();
    ??????????? int h = bis.getHeight();
    ??????????? double scale = (double)w/h;

    ??????????? int nw = 120;
    ??????????? int nh = (nw * h) / w;
    ??????????? if(nh>120) {
    ??????????????? nh = 120;
    ??????????????? nw = (nh * w) / h;
    ??????????? }

    ??????????? double sx = (double)nw / w;
    ??????????? double sy = (double)nh / h;

    ??????????? transform.setToScale(sx,sy);

    ??????????? AffineTransformOp ato = new AffineTransformOp(transform, null);
    ??????????? BufferedImage bid = new BufferedImage(nw, nh, BufferedImage.TYPE_3BYTE_BGR);
    ??????????? ato.filter(bis,bid);
    ??????????? ImageIO.write(bid, "jpeg", fo);
    ??????? } catch(Exception e) {
    ??????????? e.printStackTrace();
    ??????? }
    ??? }
    }
    posted on 2005-01-14 15:07 eamoi 閱讀(5607) 評論(5)  編輯  收藏 所屬分類: JSP/Servlet

    評論:
    # re: [收藏]java生成縮略圖代碼 2005-10-15 01:30 | 鳥不生蛋蛋的地方
    恩,挺有用的功能,收藏了.  回復(fù)  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2005-12-13 21:44 | lesky
    好像很耗內(nèi)存,大圖會溢出,有沒有更好的辦法?求教!  回復(fù)  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2005-12-14 09:30 | eamoi
    我在自己的Web系統(tǒng)中使用到了帖子中的代碼,沒有發(fā)現(xiàn)樓上說的問題。
    內(nèi)存:DDR 512M。
    其實不耗內(nèi)存的說。  回復(fù)  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2006-03-21 22:25 | Baiyun
    我6M的附件內(nèi)存溢出,一時還想不到解決辦法。  回復(fù)  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2008-03-06 10:02 | hello
    那確實內(nèi)存溢出,,有沒有新的解決辦法?  回復(fù)  更多評論
      
    主站蜘蛛池模板: 国产精一品亚洲二区在线播放| 亚洲精品国产福利一二区| 亚洲国产美国国产综合一区二区| 美女扒开尿口给男人爽免费视频| 四虎影院在线免费播放| jlzzjlzz亚洲jzjzjz| 67194熟妇在线永久免费观看 | 东北美女野外bbwbbw免费| 亚洲午夜激情视频| 国产精品成人免费观看| 亚洲老妈激情一区二区三区| a级在线免费观看| 亚洲国产成人久久精品动漫| 久久国产精品免费看| 亚洲色成人网一二三区| 日本XXX黄区免费看| 亚洲中文字幕无码爆乳app| 国产高清在线免费| 精品国产福利尤物免费| 亚洲av综合色区| 在线精品一卡乱码免费| 亚洲国产精品ⅴa在线观看| 亚洲福利中文字幕在线网址| 国产高潮久久免费观看| 亚洲三级电影网站| 无码少妇一区二区浪潮免费| 精品国产日韩亚洲一区在线| 亚洲色自偷自拍另类小说| 久久精品人成免费| 亚洲人成自拍网站在线观看| 亚洲国产成人VA在线观看| 今天免费中文字幕视频| 亚洲一级毛片免费看| 国产成人无码免费视频97| 成在人线av无码免费高潮喷水| 亚洲国产成人久久99精品| 国产一级特黄高清免费大片| 中文字幕免费观看视频| 2020久久精品亚洲热综合一本| 免费成人午夜视频| **一级一级毛片免费观看|