TJPEGImage 를 사용해서 이미지를 로딩한 다음에 TImage.Picture.Bitmap 에 담아서 쓰면 될거 같네요.
TJPEGImage.LoadFromFIle(Path);
TJPEGImage.Bitmap 이 존재하면 1처럼 존재하지 않으면 2처럼..
1.
TImage.Picture.Bitmap.Assign(TJPEGImage.Bitmap);
2.
TImage.Picture.Bitmap.SetSize(TJPEGImage.Width, TJPEGImage.Height); // SetSize 메소드가 없을 수도 있습니다. 없으면 Width, Height 을 직접 설정해주세요. TImage.Picture.Bitmap.Width := TJPEGImage.Width; ...
TImage.Picture.Bitmap.Canvas.Draw(0, 0, TJPEGImage);
위처럼 해주고 쓰면 될겁니다.
새싹 님이 쓰신 글 :
: 감사합니다. 덕분에 해결되었습니다.
:
: 그런데 한가지만 더 물어보겠습니다.
: 처음에 그림파일 확장자를 JPG로 TImage 불러오니까 SDImage.Canvas.CopyRect()가 오류나서 BMP로 바꿨습니다.
: 혹 CopyRect함수를 jpg파일을 불러온 TImage에서도 사용할 방법이 있나요? bmp파일로 스캔을하니 파일사이즈가 너무큽니다.
:
: 루도라 님이 쓰신 글 :
: : SetStretchBltMode 모드를 사용해서 HALFTONE 으로 바꿔보세요.
: :
: : SetStretchBltMode(SDImage.Canvas.Handle, HALFTONE);
: :
: : 새싹 님이 쓰신 글 :
: : : SDImage.Canvas.CopyRect(SDImage.ClientRect , ScanImage.Canvas, Rect(625, 30,950,420));
: : :
: : :
: : : 위와같이 ScanImage컴포넌트(TImage)에서 SDImage(TImage)컴포넌트로 특정 부분의 이미지를 복사하였는데 첨부파일과 같이 이미지가 손상되어나옵니다.
: : :
: : : 물론 ScanImage(원본)보다 SDImage(복사본)의 컴포넌트 크기가 더 작긴한데 약간의 확대가 된다하더라도 손상의 정도가 너무 심합니다.
: : :
: : : 어떤 것이 문제가 될지 모르겠습니다. 혹 SDImage의 속성값이 잘못 된 것이라도 있나 모르겠습니다.
|