Я не знаю, как StretchDIBits отображает входные пиксели в выходные пиксели, и я подозреваю, что он все равно может измениться по прихоти Microsoft.
Создайте изображение того же размера, что и ваш ввод, и заполните пиксели с увеличивающимися значениями: (0,0) получает RGB (0,0,0), (0,1) получает RGB (0,1,0) , (10,20) получает RGB (10,20,0) и т. Д. Создайте DC памяти того же размера, что и ваш вывод, и используйте StretchDIBits для рисования изображения в нем. Теперь каждый пиксель в этом DC может быть отображен обратно на вход по цвету, который он содержит.