我正在开发成像功能(是的,出于各种原因,我真的很想重新发明轮子)。
我正在将位图复制到 unsigned char 数组中,但是字节大小与图像像素格式之间存在一些问题。
例如,许多图像以每像素 24 位的形式用于 RGB 表示,所以这很容易,每个像素都有 3 个无符号字符(字节),每个人都很高兴
但是有时 RGB 具有更奇怪的类型,例如每像素 48 位,因此每个颜色通道 16 位。将整个图像复制到字节数组中可以正常工作,但是当我想检索数据时,事情变得模糊
现在我有以下代码来获取灰度图像的单个像素
unsigned char NImage::get_pixel(int i, int j)
{
return this->data[j * pitch + i];
}
NImage::data 是无符号字符数组
这将返回一个字节。如何访问具有不同像素格式的数据数组?