Является ли StretchBlt HALFTONE == BILINEAR для всего масштабирования?

Кто-нибудь может уточнить, выполняет ли функция GDI StretchBlt для Win32 API рабочей станции билинейную интерполяцию для масштабирования до как больших, так и меньших изображений для 24/32 -битные цветные изображения? А если нет, существует ли функция GDI ( не GDI +), которая это делает?

В SetStretchBltMode fn есть параметр HALFTONE , который задокументирован следующим образом :

HALFTONE Отображает пиксели исходного прямоугольника в блоки пикселей в прямоугольнике назначения. Средний цвет целевого блока пикселей приблизительно соответствует цвету исходных пикселей.

Я видел ссылки (см. Продолжение первого ответа) , что это выполняет билинейную интерполяцию при уменьшении масштаба изображения. , но нет четкого ответа о том, что происходит при масштабировании.

Я заметил, что Windows Mobile CE SDK поддерживает флаг BILINEAR , который задокументирован прямо противоположно комментариям HALFTONE (работает только для масштабирования вверх).

Обратите внимание, что в рамках этого вопроса я не заинтересован в использовании GDI + (который имеет множество опций интерполяции), OpenGL, DirectX и т. д. в качестве альтернатив, поэтому, пожалуйста, не я не беспокоюсь о последующих действиях, касающихся этих других API или альтернативных библиотек изображений.

Я действительно надеюсь найти некоторую исчерпывающую MS / MSDN или другую высококачественную документацию, которая четко документирует такое поведение Win32 (настольного) GDI

Тем временем, я попробую провести несколько экспериментов по сравнению GDI и Direct2D (у которого есть явный флаг для управления этим) и опубликую свои результаты.

Спасибо!

5
задан Community 23 May 2017 в 11:52
поделиться