|
원래는 Graphics32 콤퍼넌트를 사용하고있지만 최종 데이터를 JPG로 해야하기 때문에
JPG변환을 위해서 TBitmap로 Assign해서 다시 TJPEGImage로 Assign하는 구조로 코딩을 했습니다.
그런데 변환된 이미지가 뭔가 이상하게 화질이 저하되더라구요
그래서 일단 그냥 빌더에있는 Bitmap으로 읽고 다시 TJPEGImage로 assign해도 마찬가지로
화질이 저하되는데 혹시 이런문제로 고민해보시거나 해결방법을 아시는 분있나요?
소스는 간단하게 아래와 같이 코딩을하고
원본 이미지(게시판에 올린건JPG이지만 원래는 BMP)를 단순히 읽고
다시 바로 JPG로 저장했을경우 변화.JPG처럼 글짜 주변부가 깨지는현상이 나타나고있습니다.
물론 포토샵같은 프로그램으로 변환하면 제대로변화되고요
아무래도 빌더에 있는 TJPEGImage에 문제가 있는거같데 아닌가요?
Graphics::TBitmap *TmpBitmap;
TJPEGImage *Hjpeg = new TJPEGImage();
TmpBitmap = new Graphics::TBitmap();
TmpBitmap->LoadFromFile("d:\\Image1.bmp");
Hjpeg->CompressionQuality = 100;
Hjpeg->PixelFormat = pf24bit;
Hjpeg->Assign(TmpBitmap);
Hjpeg->SaveToFile("d:\\Image1.jpg");
|