Сведения о функциях 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 превосходят StretchDIBits, поскольку они обеспечивают более качественные изображения и улучшают плавность воспроизведения.
Видеокарты Функции DrawDib поддерживают большее количество адаптеров отображения, чем поддерживает StretchDIBits. Функции DrawDib поддерживают адаптеры цветов VGA, которые предоставляют 16-цветовые палитры с использованием 4-разрядной глубины изображения, адаптеров SVGA, которые предоставляют 256-цветовую палитру с использованием 8-разрядной глубины изображения и адаптеров отображения true-color, которые предоставляют тысячи цветов с использованием 16-разрядных, 24-разрядных и 32-разрядных глубин изображений.
Функции DrawDib также повышают скорость и качество отображения изображений на адаптерах отображения с более ограниченными возможностями. Например, при использовании 8-разрядного адаптера отображения функции DrawDib эффективно дитерируют изображения с истинными цветами до 256 цветов. Они также дитерируют 8-разрядные изображения при использовании 4-разрядных адаптеров отображения.
Растяжение изображений. Как и StretchDIBits, функции DrawDib используют прямоугольники источника и назначения для управления частью отображаемого изображения. Вы можете обрезать нежелательные части изображения или растянуть изображение, изменив положение и размер прямоугольников источника и назначения. Если драйвер отображения не поддерживает растяжение изображений, функции DrawDib предоставляют более эффективные возможности растяжения, чем StretchDIBits.
Сжатые изображения. Функции DrawDib рисуют любой формат, для которого имеется декомпрессор, включая кодировку длины выполнения (RLE), Cinepak и 411 YUV. Windows включает декомпрессоры RLE и Cinepak, которые можно установить при необходимости.
Кодек Indeo больше не поддерживается в Windows.
Связанные разделы