안녕하세요.
두개의 이미지 컴포넌트를 만들어 놓고 StretchBlt를 써서 이미지를
축소 저장하려 합니다. 그런데 이미지의 상태가 많이 안좋아 지더군요.
원상태의 팔레트를 유지하면서 Photoshop같이 Image의 크기가 줄어들어도
Image의 상태는 크게 변하지 않게할수 있는 방법이 있겠습니까?
다음은 제가 간단히 코딩한 부분입니다. 지적해주십시요.
SrcBitmap.Picture.LoadFromFile(ImgPathNameBmp);
StretchBlt(DestBitmap.Canvas.Handle, 0, 0, 63, 48,
SrcBitmap.Canvas.Handle, 0, 0, SrcBitmap.Width, SrcBitmap.Height, SRCCOPY and PATCOPY);
DestBitmap.Picture.SaveToFile(ImgPathName);
내부적으로 AntiAlias를 구현하기 전에는 말이죠.
그런부분을 원하신다면 상용 ImageLib같은 컴포넌트를 사용해서 줄인 후 그 캔버스를 복사해 오는것이 제일 좋습니다.
그래도 Anti Alias에 대한 것의 자료가 있으니 한델(http://www.delphi.co.kr) 자료실에 올려 놓겠습니다.
이호선 wrote:
> 안녕하세요.
> 두개의 이미지 컴포넌트를 만들어 놓고 StretchBlt를 써서 이미지를
> 축소 저장하려 합니다. 그런데 이미지의 상태가 많이 안좋아 지더군요.
> 원상태의 팔레트를 유지하면서 Photoshop같이 Image의 크기가 줄어들어도
> Image의 상태는 크게 변하지 않게할수 있는 방법이 있겠습니까?
> 다음은 제가 간단히 코딩한 부분입니다. 지적해주십시요.
>
> SrcBitmap.Picture.LoadFromFile(ImgPathNameBmp);
> StretchBlt(DestBitmap.Canvas.Handle, 0, 0, 63, 48,
> SrcBitmap.Canvas.Handle, 0, 0, SrcBitmap.Width, SrcBitmap.Height, SRCCOPY and PATCOPY);
> DestBitmap.Picture.SaveToFile(ImgPathName);
>