<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"); //將要轉換出的小圖文件

    ??????????? 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 | 鳥不生蛋蛋的地方
    恩,挺有用的功能,收藏了.  回復  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2005-12-13 21:44 | lesky
    好像很耗內存,大圖會溢出,有沒有更好的辦法?求教!  回復  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2005-12-14 09:30 | eamoi
    我在自己的Web系統中使用到了帖子中的代碼,沒有發現樓上說的問題。
    內存:DDR 512M。
    其實不耗內存的說。  回復  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2006-03-21 22:25 | Baiyun
    我6M的附件內存溢出,一時還想不到解決辦法。  回復  更多評論
      
    # re: [收藏]java生成縮略圖代碼 2008-03-06 10:02 | hello
    那確實內存溢出,,有沒有新的解決辦法?  回復  更多評論
      
    主站蜘蛛池模板: 免费精品国产自产拍在线观看| 久久免费视频一区| 亚洲AV无码成人精品区日韩| 免费人成网站永久| 成人免费无码精品国产电影| 久久久亚洲精品无码| 亚洲另类无码专区丝袜| 久久这里只精品热免费99| 国产人成免费视频| 国产91在线|亚洲| 免费一区二区无码东京热| 国产免费牲交视频| 粉色视频在线观看www免费| 2021国内精品久久久久精免费| 亚洲国产一成久久精品国产成人综合| 久久久久se色偷偷亚洲精品av| 中文字幕一区二区免费| 亚洲国产成人久久精品99 | 久久狠狠爱亚洲综合影院| 色老头永久免费网站| 伊人久久综在合线亚洲91| 亚洲码和欧洲码一码二码三码| 国产无遮挡色视频免费视频| 亚洲人成www在线播放| 在线看片v免费观看视频777| 亚洲精品无码不卡在线播放HE| 深夜a级毛片免费无码| 国产成A人亚洲精V品无码| 久久er国产精品免费观看8| 亚洲AV无码乱码在线观看裸奔| 精品久久久久久国产免费了| 亚洲国产成人私人影院| 91制片厂制作传媒免费版樱花 | 日韩高清在线高清免费| aa午夜免费剧场| 亚洲日本韩国在线| eeuss免费影院| 亚洲电影在线免费观看| 亚洲精品免费在线| 一级一黄在线观看视频免费| 久久久亚洲精品蜜桃臀|