Вращение растровых данных размером 1 бит на дюйм - PullRequest
0 голосов
/ 04 октября 2018

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

Размеры изображения 256x224, и я отображаю его в окне с помощьюиспользуя функцию StretchDIBits API Win32 следующим образом:

    StretchDIBits(
        dc,
        0, 0, 224, 256, // Destination (x, y, w, h)
        0, 0, 224, 256, // Source (x, y, w, h)
        imageData,
        bmInfo,
        DIB_RGB_COLORS,
        SRCCOPY
);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...