Что такое rgbReserved? - PullRequest
       1

Что такое rgbReserved?

4 голосов
/ 28 ноября 2010

Привет Я хочу знать, что это за rgbReserved в RGBQuadArray и почему, когда я меняю цвета RGB, на изображении появляются некрасивые линии? Это связано с rgbReserved?

1 Ответ

11 голосов
/ 28 ноября 2010

В памяти строка растрового изображения часто сохраняется в формате BBGGRR00BBGGRR00BBGGRR00 ... так, чтобы каждый пиксель занимал ровно четыре байта или 32 бита.Это многое упрощает, и может ускорить вычисления и манипуляции с изображениями.Но если растровое изображение задает интенсивность красного, зеленого и синего в байтах (в диапазоне 0..255) и не содержит альфа-канала, тогда каждому пикселю потребуется только три байта.Таким образом, на каждый пиксель приходится четвертый неиспользованный байт.И в структуре пикселей это должно быть названо как-то.Учитывая, что используемые члены называются rgbRed, rgbGreen и rgbBlue, rgbReserved чувствует себя довольно хорошо.Возможно, rgbUnused будет еще более подходящим, но в Win32 существует традиция называть (в настоящее время) неиспользуемые параметры «Зарезервировано», как в «Зарезервировано для будущего использования».На самом деле, если ваше приложение работает с прозрачными растровыми изображениями, содержащими альфа-канал, каждый пиксель может иметь форму BBGGRRAA, поэтому вы можете использовать rgbReserved как rgbAlpha.

Последняя часть вашего вопроса не можетответь как есть.Я понятия не имею, почему ваш код не работает.Может быть, интенсивность пикселей переполняется?Может быть, где-то есть какая-то глупая ошибка?

В заключение: если вам интересно, что является членом структуры Win32, вы всегда можете обратиться к официальной документации .

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