프로그램

님들 그거 앎? GDI+ 로 JPEG 압축률 지정 가능.

(주)CKBcorp., 2015. 6. 29. 06:00
반응형



보통, MFC 에서 GDI Plus 로 화면 저장 관련 소스를 찾으면, 이런 게 나온다.


http://pheadra.tistory.com/entry/MFC-DC%EB%A1%9C-%EA%B7%B8%EB%A6%BC-%EA%B7%B8%EB%A6%AC%EA%B3%A0-GDIplus%EB%A1%9C-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

https://msdn.microsoft.com/en-us/library/ms535407(VS.85).aspx


근데, 나는 화면정보를 JPG 로 저장하면서, 압축률을 높일 필요가 있었다.


그래서 무슨 짓을 했느냐...

OpenSource 인 linux 의 library 를 소스 통채로 가져와서 windows 에서 재컴파일해서 사용하려고 했지. 


관심있는 사람들은 

http://www.ijg.org/

http://www.libjpeg-turbo.org/

참고 )


[ 생각만큼 잘 안 되더라. 씨바 ]


이것저것 여러가지 라이브러리 가지고 해봤는데 매끄럽게 안되서 어쩔까...생각하다가,

일단 접고 집에 가려고 컴퓨터 끄려다가, 우연히 한 번 찾아본 게 좀 의외의 자료라 해 봤더니 되더라.


http://www.codeproject.com/Articles/4769/In-Memory-Image-Compression


자세한 건 위의 글을 참고해라. 

핵심은, GDIPlus 를 사용할 때 사용하는 Image 객체에 jpeg compress rate 를 지정할 수 있는 옵션이 이미 존재한다.



// Setup encoder parameters
EncoderParameters encoderParameters;
encoderParameters.Count = 1;
encoderParameters.Parameter[0].Guid = EncoderQuality;
encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong;
encoderParameters.Parameter[0].NumberOfValues = 1;

// setup compression level
ULONG quality = 50;
encoderParameters.Parameter[0].Value = &quality;
[ 핵심 코드 되시겠다. ]



[ 결국, 뻘짓한 꼴. ]



역시 무식하면 몸이 고생.







 


반응형