¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  14Àå ±×·¡ÇÈ  14.6.3 jpgÆÄÀÏÀÇ Å©±â º¯È¯  

14.6.3 jpgÆÄÀÏÀÇ Å©±â º¯È¯

 

 ÀÌ ¹ø¿¡´Â Image¸¦ Çڵ鸵ÇÏ´Â °Í¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸°Ú½À´Ï´Ù. Image¸¦ ·ÎµùÇÑ ÈÄ ±× Image¸¦ º¯È¯ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù. ¿ø¸®´Â ºñ½ÁÇÕ´Ï´Ù. ¿ì¼± Image¸¦ ÀÐ¾î µé¿© ·ÎµùÇÑ ÈÄ ´Ù¸¥ Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© º¯È¯À» ÁÖ´Â ¹æ¹ýÀÔ´Ï´Ù.

 

 ¾Æ·¡ÀÇ ¿¹Á¦´Â Å©±â¸¦ ÀÛ°Ô ¸¸µå´Â ¿¹Á¦ÀÔ´Ï´Ù. WindowsÀÇ ¹ÙÅÁÈ­¸é ¾ÆÀÌÄÜÀÇ Å©±â Á¤µµ·Î ÀÛ°Ô ¸¸µé¼ö ÀÖ½À´Ï´Ù. ¶Ç ¹èÀ²À» Á¶Á¤ ÇÏ¸é ¶È °°Àº Å©±âÀÇ Image¸¦ ¸¸µé¾î º¹»ç¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹Á¦¸¦ º¸°Ú½À´Ï´Ù.

 

SmallImageMake.java(jpgÆÄÀÏÀÇ Å©±â¸¦ º¯È¯ÇÏ´Â ¿¹Á¦)

import java.io.*;

import java.awt.*;

import java.awt.image.*;

import com.sun.image.codec.jpeg.*;

class SmallImageMake extends Frame {

   private Image image=null;

   private Image scaleimage = null;

   private BufferedImage bi =null;

   public SmallImageMake() {

       this.setSize(100,100);

       this.show();

   }                             

   public void makeImage(String filename)  {

       try {

          image = Toolkit.getDefaultToolkit().getImage(filename);

          MediaTracker tracker = new MediaTracker(this);

          tracker.addImage(image,0);

          tracker.waitForAll();

          int w = image.getWidth(null);

          int h = image.getHeight(null);

          int width =32;

        int height =32;

        scaleimage = image.getScaledInstance(width,height,Image.SCALE_DEFAULT);

        int [] pixels = new int[width * height];

        PixelGrabber pg = new PixelGrabber(scaleimage,0,0,width,height,pixels,0,width);

        pg.grabPixels();

        bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

        bi.setRGB(0,0,width,height,pixels,0,width);

        FileOutputStream fos = new FileOutputStream("test2_result.jpg");

        JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);

        jpeg.encode(bi);

          fos.close();

          repaint();

       } catch (Exception ex){

          System.out.println(ex.toString());

       }

   }

   public void paint (Graphics g)  {

       if(bi!=null)

          g.drawImage(bi, 34, 34, this);

   }

   public static void main(String args[]) {

       SmallImageMake sim = new SmallImageMake();

       sim.makeImage("test2.jpg");

   }

}

C:\JavaExample\14>javac SmallImageMake.java

C:\JavaExample\14>java SmallImageMake

 

 ¸ÕÀú Image¸¦ ·ÎµùÇÑ ÈÄ ¸¸µé ImageÀÇ Å©±â¸¦ Á¤ÇÕ´Ï´Ù. ±× °ªµéÀ» ¸Å°³º¯¼ö·Î »ï¾Æ¼­ getScaledInstance()¸Þ¼­µå¸¦ È£ÃâÇÕ´Ï´Ù.

 

n        int width = 32;

n        int hegith = 32;

n        scaleimage = image.getScaledInstance(width,hegith,Image.SCALE_DEFAULT);

 

 getScaledInstance()¸Þ¼­µå´Â ¸Å°³º¯¼öÀÇ Å©±â´ë·Î Á¶Á¤ÇÑ Image °´Ã¼¸¦ »ý¼ºÇÏ¿© ¹ÝȯÇÕ´Ï´Ù.

 

n        int [] pixels = new int[width * height];

n        PixelGrabber pg;

n        pg = new PixelGrabber(scaleimage,0,0,width,height,pixels,0,width);

n        pg.grabPixels();

 

 À§ÀÇ ±¸¹®Àº Çȼ¿À» »Ì¾Æ³»´Â ÀÛ¾÷À» Çϰí ÀÖ´Â °÷ÀÔ´Ï´Ù. ps.grabPixels()¸Þ¼­µå´Â Çȼ¿À» ´Ù »Ì¾Æ³¾ ¶§±îÁö ÇÁ·Î±×·¥À» ÁßÁö ½ÃŰ´Â ¾Õ¿¡¼­ ¹è¿î MediaTracker¿Í °°Àº ±â´ÉÀ» ÇÏ´Â ¸Þ¼­µå ÀÔ´Ï´Ù.

 

n        bi = new BufferedImage(50, 85, BufferedImage.TYPE_INT_RGB);

n        bi.setRGB(0,0,width,hegith,pixels,0,width);

 

BufferedImage·Î º¯È¯½ÃÄ×½À´Ï´Ù. JPEGÀÎÄÚµùÀ» Çϱâ À§Çؼ­ÀÔ´Ï´Ù.

 

n        FileOutputStream fos = new FileOutputStream("test2_result.jpg");

n        JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);

n        jpeg.encode(bi);

n        fos.close();

n        repaint();

 

 JPEGÀÎÄÚµùÀ» ÇÏ´Â ÀÛ¾÷ÀÔ´Ï´Ù. ±×¸®°í ÁÖ¾îÁø ÆÄÀÏ À̸§À¸·Î ±×¸² ÆÄÀÏÀ» »õ·Î º¹»çÇÏ´Â °úÁ¤ÀÔ´Ï´Ù.

 ´ÙÀ½Àº jpgÆÄÀÏÀÇ ¾ÐÃà·üÀ» º¯È¯ ½ÃŰ´Â ¿¹Á¦ ÀÔ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ
ÀúÀÚ:ÃÖ¿µ°ü