SetDIBitsToDevice 함수(wingdi.h)
SetDIBitsToDevice 함수는 DIB, JPEG 또는 PNG 이미지의 색 데이터를 사용하여 대상 디바이스 컨텍스트와 연결된 디바이스의 지정된 사각형에 있는 픽셀을 설정합니다.
구문
int SetDIBitsToDevice(
[in] HDC hdc,
[in] int xDest,
[in] int yDest,
[in] DWORD w,
[in] DWORD h,
[in] int xSrc,
[in] int ySrc,
[in] UINT StartScan,
[in] UINT cLines,
[in] const VOID *lpvBits,
[in] const BITMAPINFO *lpbmi,
[in] UINT ColorUse
);
매개 변수
[in] hdc
디바이스 컨텍스트에 대한 핸들입니다.
[in] xDest
대상 사각형의 왼쪽 위 모서리에 있는 x 좌표(논리 단위)입니다.
[in] yDest
대상 사각형의 왼쪽 위 모서리에 있는 논리 단위의 y 좌표입니다.
[in] w
이미지의 너비(논리 단위)입니다.
[in] h
이미지의 높이(논리적 단위)입니다.
[in] xSrc
이미지의 왼쪽 아래 모서리에 있는 x 좌표(논리 단위)입니다.
[in] ySrc
이미지의 왼쪽 아래 모서리에 있는 논리 단위의 y 좌표입니다.
[in] StartScan
이미지의 시작 검사 줄입니다.
[in] cLines
lpvBits 매개 변수가 가리키는 배열에 포함된 DIB 검사 줄의 수입니다.
[in] lpvBits
바이트 배열로 저장된 색 데이터에 대한 포인터입니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
[in] lpbmi
DIB에 대한 정보를 포함하는 BITMAPINFO 구조체에 대한 포인터입니다.
[in] ColorUse
BITMAPINFO 구조체의 bmiColors 멤버에 명시적 빨강, 녹색, 파랑(RGB) 값 또는 인덱스가 색상표에 포함되어 있는지 여부를 나타냅니다. 자세한 내용은 아래 설명 부분을 참조하십시오.
fuColorUse 매개 변수는 다음 값 중 하나여야 합니다.
값 | 의미 |
---|---|
|
색 테이블은 현재 선택한 논리 팔레트에 16비트 인덱스의 배열로 구성됩니다. |
|
색 테이블에는 리터럴 RGB 값이 포함되어 있습니다. |
반환 값
함수가 성공하면 반환 값은 설정된 검사 줄 수입니다.
dwHeight가 0인 경우와 같이 검사 줄이 0으로 설정되거나 함수가 실패하면 함수는 0을 반환합니다.
드라이버가 SetDIBitsToDevice에 전달된 JPEG 또는 PNG 파일 이미지를 지원할 수 없는 경우 함수는 실패하고 GDI_ERROR 반환합니다. 오류가 발생하는 경우 애플리케이션은 자체 JPEG 또는 PNG 지원으로 대체하여 이미지를 비트맵으로 압축 해제한 다음 비트맵을 SetDIBitsToDevice에 전달해야 합니다.
설명
비트맵 비트가 시스템 팔레트의 인덱스일 때 최적의 비트맵 그리기 속도를 가져옵니다.
애플리케이션은 GetSystemPaletteEntries 함수를 호출하여 시스템 팔레트 색 및 인덱스를 검색할 수 있습니다. 색 및 인덱스를 검색한 후 애플리케이션은 DIB를 만들 수 있습니다. 시스템 팔레트에 대한 자세한 내용은 색을 참조 하세요.
검색 줄은 RLE 압축 비트맵을 제외하고 DWORD 에 맞춰야 합니다.
상향식 DIB의 원점은 비트맵의 왼쪽 아래 모서리입니다. 하향식 DIB의 원점은 왼쪽 위 모서리입니다.
디바이스 표면의 큰 DIB에서 비트를 설정하는 데 필요한 메모리 양을 줄이기 위해 애플리케이션은 SetDIBitsToDevice를 반복적으로 호출하여 출력을 줄여서 매번 비트맵의 다른 부분을 lpvBits 배열에 배치할 수 있습니다. uStartScan 및 cScanLines 매개 변수의 값은 lpvBits 배열에 포함된 비트맵의 부분을 식별합니다.
SetDIBitsToDevice 함수는 전체 화면 MS-DOS 세션이 포그라운드에서 실행되는 동안 백그라운드에서 실행되는 프로세스에서 호출되는 경우 오류를 반환합니다.
- BITMAPINFOHEADER의 biCompression 멤버가 BI_JPEG 또는 BI_PNG 경우 lpvBits는 JPEG 또는 PNG 이미지가 포함된 버퍼를 가리킵니다. 의 biSizeImage 멤버는 버퍼의 크기를 지정합니다. fuColorUse 매개 변수는 DIB_RGB_COLORS 설정해야 합니다.
- 인쇄하는 동안 적절한 메타파일 스풀링을 보장하려면 애플리케이션에서 SETDIBitsToDevice를 호출하기 전에 CHECKJPEGFORMAT 또는 CHECKPNGFORMAT 이스케이프를 호출하여 프린터가 JPEG 또는 PNG 이미지를 각각 인식하는지 확인해야 합니다.
예제
예를 들어 JPEG 또는 PNG 지원을 위한 프린터 테스트를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wingdi.h(Windows.h 포함) |
라이브러리 | Gdi32.lib |
DLL | Gdi32.dll |