Чтение изображения в матрицу пикселей в C ++ - PullRequest
1 голос
/ 15 ноября 2011

Я прочитал изображение в LPPICTURE с OleLoadPictre и отобразил его в окне, но мне действительно нужно превратить изображение в матрицу пикселей, которыми я могу манипулировать, и сохранить обратно вфайл изображения.

Используя OleLoadPicture, я могу читать практически во всех основных форматах изображений.Если бы я мог получить доступ к отдельным пикселям, я мог бы просто просмотреть и извлечь их все.

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

Я смотрю на библиотеку ImageMagic с помощью Magic ++.Это кажется довольно хорошим, но если есть решение, использующее Windows API для извлечения пикселей и сохранения изображения обратно в произвольный формат изображения, то это будет лучшим / самым легким, как я полагаю.

1 Ответ

0 голосов
/ 15 ноября 2011

OleLoadPicture дает вам экземпляр IPicture. Используйте IPicture::get_Handle, чтобы получить HBITMAP, удерживаемый экземпляром IPicture. Наконец, используйте GetDIBits, чтобы получить данные пикселей.

Вот пример кода для этого здесь . Перевод этого из MFC в обычный WinAPI должен получить ваши данные пикселей.

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