Сведения о функциях DrawDib

[Функция, связанная с этой страницей, DrawDib, является устаревшей функцией. Он был заменен классом MediaComposition. Класс MediaComposition оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать класс MediaComposition вместо DrawDib, если это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

В совокупности функции DrawDib похожи на функцию StretchDIBits в том, что они предоставляют возможности растягивания и распределения изображений. Однако функции DrawDib поддерживают распаковку изображений, потоковую передачу данных и большее количество видеоадаптеров.

В некоторых случаях вам будет полезно использовать функции DrawDib. Тем не менее StretchDIBits является более разнообразным, чем функции DrawDib, и их следует использовать, если функции DrawDib не могут предоставить нужные функции. В следующем списке описываются факторы, которые следует учитывать при принятии решения о том, следует ли использовать функции DrawDib или StretchDIBits.

  • Формат сведений о таблице цветов. Функции DrawDib отображают изображения, использующие формат DIB_RGB_COLORS для таблицы цветов. Если в изображениях в приложении хранятся сведения о таблице цветов в формате DIB_PAL_COLORS или DIB_PAL_INDICES , необходимо использовать StretchDIBits для их отображения.

  • Режим передачи. Функции DrawDib требуют, чтобы приложение использовало режим передачи SRCCOPY . Если приложение использует StretchDIBits в режиме передачи, отличном от SRCCOPY, следует продолжать использовать StretchDIBits. Аналогичным образом, если вам нужно использовать другие растровые операции в приложении, такие как XOR, используйте StretchDIBits.

  • Качество воспроизведения видео и анимации. Функции DrawDib можно использовать для приложений потоковой передачи данных, например для воспроизведения видеоклипов и анимированных последовательностей. Функции DrawDib превосходят StretchDIBit в том, что они предоставляют изображения более высокого качества и улучшают движение во время воспроизведения.

  • Видеоадаптеры. Функции DrawDib поддерживают большее количество видеоадаптеров, чем StretchDIBits . Функции DrawDib поддерживают адаптеры цвета VGA, которые предоставляют 16-цветные палитры с 4-разрядной глубиной изображения, адаптеры SVGA, которые предоставляют 256-цветовые палитры с 8-разрядной глубиной изображения, и адаптеры отображения истинного цвета, которые предоставляют тысячи цветов с использованием 16-разрядной, 24-разрядной и 32-разрядной глубины изображений.

    Функции DrawDib также повышают скорость и качество отображения изображений на видеоадаптерах с более ограниченными возможностями. Например, при использовании 8-разрядного видеоадаптера функции DrawDib эффективно разбавливают изображения истинного цвета до 256 цветов. Они также адаптируют 8-разрядные изображения при использовании 4-разрядных адаптеров дисплея.

  • Растягивание изображений. Как и StretchDIBits, функции DrawDib используют исходный и целевой прямоугольники для управления отображаемой частью изображения. Вы можете обрезать нежелательные части изображения или растянуть изображение, изменяя положение и размер исходных и целевых прямоугольников. Если драйвер дисплея не поддерживает растягивание изображений, функции DrawDib предоставляют более эффективные возможности растяжения, чем StretchDIBits.

  • Сжатые изображения. Функции DrawDib рисуют любой формат, для которого у вас есть распаковка, включая кодировку RLE, Cinepak и 411 YUV. Windows включает декомпрессоры RLE и Cinepak, которые можно установить при необходимости.

  • Кодек Indeo больше не поддерживается в Windows.

DrawDib