문득 태블릿PC를 이용하여 품질데이터 관리 하는 기능의 일환으로 이미지 압축에 관련하여 한번 살펴 보았다.

아래 0 압축율은 이미지가 깨지므로 25L이 적당한것으로 테스트 되었다.


자 그럼 이제 카메라 구동기술을 알아보자. 한 3년은 걸릴거 같음 ㅋ


private void VaryQualityLevel()

{

    // Get a bitmap.

    Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg");

    ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);


    // Create an Encoder object based on the GUID

    // for the Quality parameter category.

    System.Drawing.Imaging.Encoder myEncoder =

        System.Drawing.Imaging.Encoder.Quality;


    // Create an EncoderParameters object.

    // An EncoderParameters object has an array of EncoderParameter

    // objects. In this case, there is only one

    // EncoderParameter object in the array.

    EncoderParameters myEncoderParameters = new EncoderParameters(1);


    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);

    myEncoderParameters.Param[0] = myEncoderParameter;

    bmp1.Save(@"c:\TestPhotoQualityFifty.jpg", jpgEncoder, myEncoderParameters);


    myEncoderParameter = new EncoderParameter(myEncoder, 100L);

    myEncoderParameters.Param[0] = myEncoderParameter;

    bmp1.Save(@"c:\TestPhotoQualityHundred.jpg", jpgEncoder, myEncoderParameters);


    // Save the bitmap as a JPG file with zero quality level compression.

    myEncoderParameter = new EncoderParameter(myEncoder, 0L);

    myEncoderParameters.Param[0] = myEncoderParameter;

    bmp1.Save(@"c:\TestPhotoQualityZero.jpg", jpgEncoder, myEncoderParameters);


}



// Image format에 대한 Codec 정보를 가져온다.

private ImageCodecInfo GetEncoder(ImageFormat format)

{


    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();


    foreach (ImageCodecInfo codec in codecs)

    {

        if (codec.FormatID == format.Guid)

        {

            return codec;

        }

    }

    return null;

}


WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,