StretchBlt так медленно — есть хорошие альтернативы?

Я хочу изменить размер изображения.
В настоящее время я делаю это:

SetStretchBltMode(hCompatibleDC, HALFTONE);
StretchBlt(hCompatibleDC, 0, 0, Des_w, Des_h, mhDesktopDC, 0, 0, src_w, src_h, SRCCOPY);

Но это очень медленно.

По моим тестам, BitBlt в x75 быстрее, чем StretchBlt.
Мне нужно BitBlt / StretchBlt, чтобы получить массив битов из CompatibleDC.

Я хотел бы попытаться использовать BitBlt вместо StretchBlt (для получения 24-битного массива RGB)
и отправить в мою собственную функцию, которая будет делать изменение размера.

Теперь, если серьезно, у меня нет знаний, чтобы написать функцию, которая будет делать это быстрее, чем StretchBlt и в том же качестве, что и HALFTONE.

Может быть, нужен даже ASM — чего я не знаю.
Я пишу в C ++ (визуальная студия)
Поэтому я хотел бы знать, если вы можете помочь в этом.
Спасибо!

2

Решение

Задача ещё не решена.

Другие решения