DrawDib 함수 정보

[이 페이지와 연결된 기능인 DrawDib는 레거시 기능입니다. MediaComposition 클래스로 대체되었습니다. MediaComposition 클래스는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DrawDib 대신 MediaComposition 클래스를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

전체적으로 DrawDib 함수는 이미지 확장 및 디더링 기능을 제공한다는 측면에서 StretchDIBits 함수와 유사합니다. 그러나 DrawDib 함수는 이미지 압축 해제, 데이터 스트리밍 및 더 많은 수의 디스플레이 어댑터를 지원합니다.

경우에 따라 DrawDib 함수를 사용하는 것이 좋습니다. 하지만 StretchDIBits 는 DrawDib 함수보다 다양하며 DrawDib 함수가 원하는 기능을 제공할 수 없는 경우 사용해야 합니다. 다음 목록에서는 DrawDib 함수 또는 StretchDIBits를 사용할지 여부를 결정할 때 고려해야 할 요인에 대해 설명합니다.

  • 색 테이블 정보 형식입니다. DrawDib 함수는 색 테이블에 DIB_RGB_COLORS 형식을 사용하는 이미지를 표시합니다. 애플리케이션의 이미지가 DIB_PAL_COLORS 또는 DIB_PAL_INDICES 형식으로 색 테이블 정보를 저장하는 경우 StretchDIBits 를 사용하여 표시해야 합니다.

  • 전송 모드. DrawDib 함수를 사용하려면 애플리케이션에서 SRCCOPY 전송 모드를 사용해야 합니다. 애플리케이션이 SRCCOPY 이외의 전송 모드에서 StretchDIBits를 사용하는 경우 StretchDIBits를 계속 사용해야 합니다. 마찬가지로 애플리케이션에서 XOR과 같은 다른 래스터 작업을 사용해야 하는 경우 StretchDIBits를 사용합니다.

  • 비디오 및 애니메이션 재생의 품질입니다. 비디오 클립 및 애니메이션 시퀀스를 재생하는 것과 같은 데이터 스트리밍 애플리케이션에 DrawDib 함수를 사용할 수 있습니다. DrawDib 함수는 더 높은 품질의 이미지를 제공하고 재생 중에 동작을 개선한다는 측면에서 StretchDIBits 보다 우수합니다.

  • 디스플레이 어댑터. DrawDib 함수는 StretchDIBits 에서 지원하는 것보다 많은 수의 디스플레이 어댑터를 지원합니다. DrawDib 함수는 4비트 이미지 깊이를 사용하여 16색 팔레트를 제공하는 VGA 색 어댑터, 8비트 이미지 깊이를 사용하는 256색 팔레트를 제공하는 SVGA 어댑터, 16비트, 24비트 및 32비트 이미지 깊이를 사용하여 수천 가지 색상을 제공하는 참색 디스플레이 어댑터를 지원합니다.

    또한 DrawDib 함수는 기능이 제한된 디스플레이 어댑터에 이미지를 표시하는 속도와 품질을 향상시킵니다. 예를 들어 8비트 디스플레이 어댑터를 사용하는 경우 DrawDib 함수는 실제 색 이미지를 256색으로 효율적으로 디더링합니다. 또한 4비트 디스플레이 어댑터를 사용할 때 8비트 이미지를 디더링합니다.

  • 이미지 스트레칭. StretchDIBits와 마찬가지로 DrawDib 함수는 원본 및 대상 사각형을 사용하여 표시되는 이미지 부분을 제어합니다. 원본 및 대상 사각형의 위치와 크기를 변경하여 이미지의 원치 않는 부분을 자르거나 이미지를 확장할 수 있습니다. 디스플레이 드라이버가 이미지 스트레치를 지원하지 않는 경우 DrawDib 함수는 StretchDIBits보다 더 효율적인 확장 기능을 제공합니다.

  • 압축된 이미지. DrawDib 함수는 RLE(실행 길이 인코딩), Cinepak 및 411 YUV를 포함하여 압축 해제기가 있는 모든 형식을 그립니다. Windows에는 필요에 따라 설치할 수 있는 RLE 및 Cinepak 압축 해제기가 포함되어 있습니다.

  • Indeo 코덱은 Windows에서 더 이상 지원되지 않습니다.

DrawDib