¼Ò¼³°°ÀºÀÚ¹Ù3ºÎ  14Àå ±×·¡ÇÈ  14.6.4 jpgÆÄÀÏÀÇ ¾ÐÃà·ü º¯È¯  

 

      14.6.4 jpgÆÄÀÏÀÇ ¾ÐÃà·ü º¯È¯

 

 ÀÌ ¹ø¿¡´Â ÆÄÀÏÀÇ ¾ÐÃà·üÀ» º¯È¯½ÃŰ´Â ¿¹Á¦ÀÔ´Ï´Ù. ¾ÐÃà·üÀ» º¯È¯ ½ÃŰ¸é ±×¸²ÀÇ ÇØ»óµµ¿¡ ¿µÇâÀ» ¹ÌÃÄ ±×¸²ÀÌ ¼±¸íÇÏÁö ¸øÇÏ°Ô µË´Ï´Ù. ¿¹Á¦¸¦ ÅëÇØ º¸¸é ¾Æ½Ã°ÚÁÒ. ±×·³ ¿¹Á¦¸¦ º¸°Ú½À´Ï´Ù.

 

CompressedImage.java(jpgÆÄÀÏÀÇ ¾ÐÃà·ü º¯È¯ ¿¹Á¦)

import java.io.*;

import java.awt.*;

import java.awt.image.*;

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

public class CompressedImage extends Frame {

   private Image image=null;

   private Image scaleimage = null;

   private BufferedImage bi =null;

   private int width =0;

   private int height =0;

   public CompressedImage() {

       this.setSize(400,300);

       this.show();

   }                            

   public void makeImage(String filename, String scalefilename) {

       try {

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

          MediaTracker tracker = new MediaTracker(this);

          tracker.addImage(image,0);

          tracker.waitForAll();

          width= image.getWidth(null);

          height= image.getHeight(null);

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

          PixelGrabber pg = new PixelGrabber(image,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(scalefilename);

          JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);

          JPEGEncodeParam param = jpeg.getDefaultJPEGEncodeParam(bi);

        param.setQuality(0.10000f, true);

        jpeg.setJPEGEncodeParam(param);

          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, 35,40, this);

   }

   public static void main(String args[]) {

       CompressedImage ci = new CompressedImage();

       ci.makeImage("test1.jpg", "test1_result.jpg" );

   }

}

C:\JavaExample\14>javac CompressedImage.java

C:\JavaExample\14>java CompressedImage

 

 ÀÌ·¸°Ô °á°ú°¡ ³ª¿Ô½À´Ï´Ù. ÇÏÁö¸¸ º°·Î ´Þ¶óÁø °Í ¾ø´Â °Í °°Áö ¾Ê½À´Ï±î? ´ç¿¬ÇÕ´Ï´Ù. ÀÌ °ÍÀº ¿øº» ÆÄÀÏÀÔ´Ï´Ù.^^; º¯È¯ µÇ¾î ³ª¿Â ¡°test2_result.jsp¡±ÆÄÀÏÀº Æú´õ µð·ºÅ͸®¿¡ ÀÖ½À´Ï´Ù. ÇÑ ¹ø ½ÇÇà ½ÃÄѼ­ ¿øº» ÆÄÀϰú ºñ±³ÇØ º¸½Ê½Ã¿ä. ¼±¸íÇÏÁö ¸øÇÏ´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. º¯È¯Àº ¾Æ·¡ÀÇ ¼¼ ÁÙ·Î ÀÌ·ç¾î Áý´Ï´Ù.

 

n        JPEGEncodeParam param = jpeg.getDefaultJPEGEncodeParam(bi);

n        param.setQuality(0.10000f, true);

n        jpeg.setJPEGEncodeParam(param);

 

 JPEGEncodeParamŬ·¡½ºÀÇ param°´Ã¼¸¦ »ý¼ºÇÏ¿© setQuality()¸Þ¼­µå¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼­µå°¡ ImageÀÇ º¯È¯À» ½ÃŰ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù. ¸Å°³º¯¼ö·Î ¾²¿©Áø 0.10000f°¡ ±× Á¤µµ¸¦ ³ªÅ¸³» ÁÝ´Ï´Ù. º¸Åë 0.75 ÀÌ¸é °íǰÁú, 0.5 À̸é Ç¥ÁØÇ°Áú, 0.25À̸é ÀúǰÁúÀÇ °ªÀ¸·Î º¸¸é µË´Ï´Ù. °ªÀÇ ¹üÀ§´Â 0ºÎÅÍ 1±îÁöÀÇ °ªÀ̸ç 1À̸é ÃÖ°íǰÁúÀÇ Image°¡ ³ª¿À°Ô µË´Ï´Ù. À̰ÍÀ¸·Î Image Load¿¡ ´ëÇÏ¿© ¾Ë¾Æº¸¾Ò½À´Ï´Ù.



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