
StretchTransfer는 Graphics32 라이브러리에 있는 메소드로, 하나의 비트맵 이미지를 다른 비트맵 이미지로 변환하면서 크기를 조정하는 기능을 제공한다.
- 이 메소드는 주로 이미지 리사이징, 스케일링 또는 픽셀 데이터의 재매핑에 사용
StretchTransfer의 기능
1. 비트맵 복사
- 소스 비트맵에서 픽셀 데이터를 가져와 대상 비트맵에 해당 데이터를 그린다.
2. 크기 조정
- 소스 비트맵의 크기를 대상 비트맵의 크기로 조정한다.
3. 영역 지정
- 소스 및 대상 비트맵의 특정 영역을 지정할 수 있고, 이를 통해 이미지의 일부부만 조정하거나 전송할 수 있다.
4. 품질 조정
- 크기 조정 과정에서 이미지의 품질을 유지하거나, 조절하기 위한 다양한 옵션과 설정을 할 수 있다.
StretchTransfer 파라미터
1. Destination (대상 비트맵)
- 이미지가 그려질 대상 비트맵 객체
- 이 비트맵에 소스 이미지가 조정되어 그려진다.
2. DstRect (대상 영역)
- 대상 비트맵 내에서 이미지가 그려질 특정 영역을 지정
- TRect 타입으로, 보통 (x, y) 위치와 너비 및 높이로 정의된다.
3. SrcRect (소스 영역)
- 소스 비트맵에서 가져올 영역을 지정
- 이것도 TRect 타입으로, 조정하고자 하는 소스 이미지의 특정 부분을 정의한다.
4. Source (소스 비트맵)
- 원본 이미지가 포함된 비트맵 객체
- 객체에서 픽셀 데이터가 가져와지고, 대상 비트맵에 그려진다.
5. Resampler (리샘플러)
- 이미지 크기를 조정할 때 사용되는 리샘플링 방법을 정의
- 이미지의 품질과 조정 방식에 영향을 미친다.
6. DrawMode (그리기 모드)
- 이미지를 그릴 때 사용할 모드를 지정
- 예를 들어, 투명도 처리, 블렌딩 모드 등이 여기에 해당될 수 있다.
StretchTransfer 사용 예시
procedure StretchTransferExample(Source, Dest: TBitmap32);
begin
Source.ResamplerClassName := 'TLinearResampler';
Dest.SetSize(새로운 너비, 새로운 높이);
StretchTransfer(Dest, Dest.BoundsRect, Source.BoundsRect, Source, dmOpaque, nil);
end;
- 리샘플러 설정
- 대상 비트맵의 크기 조정
- StretchTransfer