Используйте StretchBlt. Из мануала
StretchBlt создает зеркальное изображение растрового изображения, если знаки параметры nWidthSrc и nWidthDest или если параметры nHeightSrc и Параметры nHeightDest различаются. Если nWidthSrc и nWidthDest имеют разные знаки, функция создает зеркальное отображение растрового изображения по оси x. Если nHeightSrc и nHeightDest имеют разные знаки, функция создает зеркальное отображение растрового изображения по оси Y.
BitBlt
не допускает никаких преобразований, кроме перевода. StretchBlt
сделает это, хотя. Просто укажите отрицательную ширину или высоту конечной точки (в зависимости от того, какую ось вы хотите перевернуть) и отрегулируйте соответствующую исходную координату конечной точки, чтобы она относилась к другой стороне. Например, чтобы перевернуть изображение размером 200x100 по горизонтали, вы должны сделать
StretchBlt(
dest,
200, 0, -200, 100,
src,
0, 0, 200, 100,
SRCCOPY);
learn.microsoft.com/en-us/windows/win32/gdi/…