Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14827] Re:Re:Re:TImage에서 CopyRect를 이용한 컴포넌트간 복사에서 이미지 손상문제
루도라 [noxi76] 2622 읽음    2013-10-25 08:33
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의 속성값이 잘못 된 것이라도 있나 모르겠습니다.

+ -

관련 글 리스트
14823 TImage에서 CopyRect를 이용한 컴포넌트간 복사에서 이미지 손상문제 새싹 2465 2013/10/21
14824     Re:TImage에서 CopyRect를 이용한 컴포넌트간 복사에서 이미지 손상문제 루도라 2050 2013/10/21
14825         Re:Re:TImage에서 CopyRect를 이용한 컴포넌트간 복사에서 이미지 손상문제 새싹 3136 2013/10/22
14827             Re:Re:Re:TImage에서 CopyRect를 이용한 컴포넌트간 복사에서 이미지 손상문제 루도라 2622 2013/10/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.