gpt4 book ai didi

c++ - 为什么 unsigned char 用于 RGB 像素数据?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:54 25 4
gpt4 key购买 nike

我正在使用一些基本的计算机图形学来学习 C++。

像素数据通常表示为:

unsigned char *pixels

unsigned char 很好,因为它是 0 到 255 之间的值(256 = 2^8 因为 char 是 2 个字节,1 个字节是 8 位?)。这很好,因为在 RGB 中,颜色用 0 到 255 之间的数字表示。

但是..我将其理解为单色图像,在正常图像中我有 RGB,我会有 3 个未签名字符数组,一个用于红色,一个用于绿色,一个用于蓝色。像这样的东西:

unsigned char *pixels[3]

但我从来没有发现类似的 RGB 像素数据

最佳答案

RGB 图像通常以交错顺序存储(R1、G1、B1、R2、G2、B2、...),因此一个指针(指向 R1)就足够了。

这使得处理单个像素有点困难:索引为 N 的像素存储在 pixels[3*N+0]pixels[3*N+1]pixels[3*N+2] 而不仅仅是 red[N], green[N], blue[N]

但是,这样做的好处是可以加快访问速度:指针越少,程序越简单,速度也越快;交错顺序还使内存缓存更有效。

关于c++ - 为什么 unsigned char 用于 RGB 像素数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5742967/

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