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