JPG 이미지 화일을 읽어들여 일정한 비율로 크기를 줄일려고 합니다..
아래와 같이 여기서 검색한 방법대로 했는데요....
temp := TBitMap.Create;
tempJpeg := TJpegImage.Create;
temp.pixelformat := pf24bit;
temp.width:= 적절하게 축소시킨 Size;
temp.height:= 적절하게 축소시킨 Size;
temp.canvas.StretchDraw(rect(0,0,temp.width,temp.height),orgImg);
tempJpeg.assign(temp);
tempJpeg.CompressionQuality:= 90;
tempJpeg.compress;
tempJpeg.SaveToStream(thumbImageStream[f0]);
문제는... 똑같은 이미지 화일을 포토샵이나 이런 프로그램을 통해 축소시킨것 보다 화질이 안좋다는 것입니다... T_T
학교 때 배운 지식을 얼핏 연결해 생각해 보니까요...
위의 방법은 축소시킬 때 아래와 같이 하고...
1 2 --> 1 (가령 절반으로 축소 시킬 때 4픽셀의 값중 하나만 남는다)
4 5
포토샵 같은 프로그램은 아래와 같이 하는게 아닐까 싶습니다..
1 2 ---> 3 (가령 절반으로 축소 시킬 때 4픽셀의 평균값을 구한다.)
4 5
아래 방법이... 보간법인가요?
암튼 아래처럼 해주면 이미지 화질이 좋아지는지....
또는 이미지 축소시켜주는 컴포넌트 어디 없나요...?
답변 부탁드리겠습니다...
이미지 회전 축소 확대 모든 기능이 있습니다.
또한 축소 확대 했을 경우 만족할만 했구요..
제가 가지고 있는 graphics32 콤퍼넌트를 올려 드리겠습니다.