<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ù)  更多評論
      
    主站蜘蛛池模板: 亚洲尹人香蕉网在线视颅| 亚洲欧洲日产国码无码网站| 亚洲av一本岛在线播放| 在线a免费观看最新网站| 亚洲人成网站日本片| 免费中文熟妇在线影片 | 黄色一级毛片免费看| 国产性生交xxxxx免费| 在线观看亚洲视频| 亚洲欧洲中文日韩av乱码| av电影在线免费看| 亚洲av无码一区二区三区网站| 高清一区二区三区免费视频| 亚洲色av性色在线观无码| 国产桃色在线成免费视频| 丰满亚洲大尺度无码无码专线| 亚洲国产精品日韩专区AV| 久久免费国产精品一区二区| 4444亚洲国产成人精品| 日本成人在线免费观看| sss在线观看免费高清| 91在线精品亚洲一区二区| 女人张腿给男人桶视频免费版| 日韩免费码中文在线观看| 亚洲美女又黄又爽在线观看| 50岁老女人的毛片免费观看| 亚洲AV无码专区在线电影成人| 亚洲熟妇少妇任你躁在线观看无码| 日本在线免费观看| 亚洲欧美国产国产一区二区三区| 国产亚洲美女精品久久久| 91制片厂制作传媒免费版樱花| 国产成人精品亚洲2020| 国产黄色一级毛片亚洲黄片大全| 99免费视频观看| 羞羞的视频在线免费观看| 亚洲综合在线视频| 亚洲国产精品碰碰| 无码国产精品一区二区免费式直播| 美女露100%胸无遮挡免费观看| 亚洲一区二区影院|