gpt4 book ai didi

c++ - 图像格式和无符号字符数组

转载 作者:搜寻专家 更新时间:2023-10-31 01:23:05 24 4
gpt4 key购买 nike

我正在开发成像功能(是的,出于各种原因,我真的很想重新发明轮子)。

我正在将位图复制到无符号字符数组中,但我在字节大小与图像像素格式方面遇到了一些问题。

例如,很 multimap 像以每像素 24 位的 RGB 表示形式出现,所以这很容易,每个像素都有 3 个无符号字符(字节),每个人都很高兴

但是有时 RGB 有更奇怪的类型,例如每个像素 48 位,所以每个颜色 channel 16 位。将整个图像复制到字节数组中工作正常,但当我想要检索数据时,事情变得模糊

现在我有以下代码来获取灰度图像的单个像素

unsigned char NImage::get_pixel(int i, int j)
{
return this->data[j * pitch + i];
}

NImage::data 是无符号字符数组

这将返回一个字节。如何访问具有不同像素格式的数据阵列?

最佳答案

你应该这样做:

unsigned short NImage::get_pixel(int i, int j)
{
int offset = 2 * (j * pitch + i);
// image pixels are usually stored in big-endian format
return data[offset]*256 + data[offset+1];
}

关于c++ - 图像格式和无符号字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2059804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com