Я разрабатываю функции обработки изображений (да, я ДЕЙСТВИТЕЛЬНО хочу изобрести колесо по разным причинам).
Я копирую растровые изображения в неподписанные массивы символов, но у меня возникли проблемы с размером байта в зависимости от формата пикселя изображения.
например, многие изображения представлены в виде 24 бит на пиксель для представления RGB, так что это довольно просто, каждый пиксель имеет 3 знака без знака (байты), и все довольны
однако иногда RGB имеет более странные типы, например, 48 бит на пиксель и 16 бит на цветовой канал. Копирование всего изображения в байтовый массив работает нормально, но когда я хочу получить данные, все становится размытым
Прямо сейчас у меня есть следующий код, чтобы получить один пиксель для изображений в градациях серого
unsigned char NImage::get_pixel(int i, int j)
{
return this->data[j * pitch + i];
}
NImage :: data - массив без знака
Возвращает один байт. Как я могу получить доступ к массиву данных с различными форматами пикселей?