StretchDIBits 함수(wingdi.h)
StretchDIBits 함수는 DIB, JPEG 또는 PNG 이미지의 픽셀 사각형에 대한 색 데이터를 지정된 대상 사각형에 복사합니다. 대상 사각형이 원본 사각형보다 큰 경우 이 함수는 대상 사각형에 맞게 색 데이터의 행과 열을 늘립니다. 대상 사각형이 원본 사각형보다 작은 경우 이 함수는 지정된 래스터 작업을 사용하여 행과 열을 압축합니다.
구문
int StretchDIBits(
[in] HDC hdc,
[in] int xDest,
[in] int yDest,
[in] int DestWidth,
[in] int DestHeight,
[in] int xSrc,
[in] int ySrc,
[in] int SrcWidth,
[in] int SrcHeight,
[in] const VOID *lpBits,
[in] const BITMAPINFO *lpbmi,
[in] UINT iUsage,
[in] DWORD rop
);
매개 변수
[in] hdc
대상 디바이스 컨텍스트에 대한 핸들입니다.
[in] xDest
대상 사각형의 왼쪽 위 모서리에 있는 x 좌표(논리 단위)입니다.
[in] yDest
대상 사각형의 왼쪽 위 모서리에 있는 논리 단위의 y 좌표입니다.
[in] DestWidth
대상 사각형의 너비(논리 단위)입니다.
[in] DestHeight
대상 사각형의 높이(논리 단위)입니다.
[in] xSrc
이미지에 있는 원본 사각형의 x 좌표(픽셀)입니다.
[in] ySrc
이미지에서 원본 사각형의 y 좌표(픽셀)입니다.
[in] SrcWidth
이미지의 원본 사각형 너비(픽셀)입니다.
[in] SrcHeight
이미지의 원본 사각형 높이(픽셀)입니다.
[in] lpBits
바이트 배열로 저장되는 이미지 비트에 대한 포인터입니다. 자세한 내용은 주의 섹션을 참조하세요.
[in] lpbmi
DIB에 대한 정보를 포함하는 BITMAPINFO 구조체에 대한 포인터입니다.
[in] iUsage
BITMAPINFO 구조체의 bmiColors 멤버가 제공되었는지 여부와 bmiColors에 명시적 빨강, 녹색, 파랑(RGB) 값 또는 인덱스가 포함되어 있는지 여부를 지정합니다. iUsage 매개 변수는 다음 값 중 하나여야 합니다.
값 | 의미 |
---|---|
|
배열에는 원본 디바이스 컨텍스트의 논리적 팔레트에 16비트 인덱스가 포함되어 있습니다. |
|
색 테이블에는 리터럴 RGB 값이 포함되어 있습니다. |
자세한 내용은 주의 섹션을 참조하세요.
[in] rop
원본 픽셀, 대상 디바이스 컨텍스트의 현재 브러시 및 대상 픽셀을 결합하여 새 이미지를 형성하는 방법을 지정하는 래스터 작업 코드입니다. 몇 가지 일반적인 래스터 작업 코드 목록은 BitBlt를 참조하세요.
반환 값
함수가 성공하면 반환 값은 복사된 검사 줄의 수입니다. 이 값은 미러된 콘텐츠에 대해 음수일 수 있습니다.
함수가 실패하거나 스캔 줄이 복사되지 않으면 반환 값은 0입니다.
드라이버가 StretchDIBits에 전달된 JPEG 또는 PNG 파일 이미지를 지원할 수 없는 경우 함수는 실패하고 GDI_ERROR 반환합니다. 오류가 발생하는 경우 애플리케이션은 자체 JPEG 또는 PNG 지원으로 대체하여 이미지를 비트맵으로 압축 해제한 다음 비트맵을 StretchDIBits에 전달해야 합니다.
설명
상향식 DIB의 원점은 왼쪽 아래 모서리입니다. 하향식 DIB의 원점은 왼쪽 위 모서리입니다.
StretchDIBits는 nSrcWidth 및 nDestWidth 매개 변수의 기호가 있거나 nSrcHeight 및 nDestHeight 매개 변수가 다른 경우 비트맵의 미러 이미지를 만듭니다. nSrcWidth 및 nDestWidth에 다른 기호가 있는 경우 함수는 x축을 따라 비트맵의 미러 이미지를 만듭니다. nSrcHeight 및 nDestHeight에 다른 기호가 있는 경우 함수는 y축을 따라 비트맵의 미러 이미지를 만듭니다.
StretchDIBits는 DIB에 대한 BITMAPINFOHEADER 구조체의 biHeight 멤버 기호가 음수이면 하향식 이미지를 만듭니다. 코드 예제는 JPEG 또는 PNG 이미지 크기 조정을 참조하세요.
이 함수를 사용하면 JPEG 또는 PNG 이미지를 원본 이미지로 전달할 수 있습니다. 다음을 제외하고 각 매개 변수를 사용하는 방법은 동일하게 유지됩니다.
- BITMAPINFOHEADER의 biCompression 멤버가 BI_JPEG 또는 BI_PNG 경우 lpBits는 각각 JPEG 또는 PNG 이미지가 포함된 버퍼를 가리킵니다. BITMAPINFOHEADER 구조체의 biSizeImage 멤버는 버퍼의 크기를 지정합니다. iUsage 매개 변수는 DIB_RGB_COLORS 설정해야 합니다. dwRop 매개 변수는 SRCCOPY로 설정해야 합니다.
- 인쇄하는 동안 적절한 메타파일 스풀링을 보장하려면 애플리케이션에서 STRETCHDIBits를 호출하기 전에 CHECKJPEGFORMAT 또는 CHECKPNGFORMAT 이스케이프를 호출하여 프린터가 JPEG 또는 PNG 이미지를 각각 인식하는지 확인해야 합니다.
예제
예제는 JPEG 또는 PNG 이미지 크기 조정을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wingdi.h(Windows.h 포함) |
라이브러리 | Gdi32.lib |
DLL | Gdi32.dll |