隨筆-200  評論-148  文章-15  trackbacks-0
          方法1:

          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 2008-04-30 15:46 無聲 閱讀(348) 評論(0)  編輯  收藏 所屬分類: 職場生活
          主站蜘蛛池模板: 长葛市| 泌阳县| 天等县| 息烽县| 鸡泽县| 民丰县| 开平市| 阜南县| 定结县| 阳泉市| 平昌县| 个旧市| 宜良县| 叶城县| 南木林县| 墨江| 延吉市| 吉水县| 京山县| 浦城县| 嘉善县| 广灵县| 万山特区| 尖扎县| 堆龙德庆县| 邵东县| 九江县| 中宁县| 石阡县| 古田县| 栾川县| 余江县| 双牌县| 浑源县| 太湖县| 垫江县| 长子县| 偏关县| 德庆县| 乐亭县| 库伦旗|