c++ RGB值从像素选择由用户使用seekg



我需要创建一个程序,加载一个.raw图像(通用的100x100图像),要求用户在范围内选择一个(x, y)坐标,并使用seekg函数显示所述像素的红色、绿色和蓝色值。我对如何从像素中获得rgb值感到茫然。到目前为止,我已经把课本上的每一章都看了一遍,没有关于检索rgb值的内容。

请求坐标的代码,如果超出范围则给出错误消息。只有当我试图想出使用seekg/获得rgb值的代码时,我才会遇到麻烦。我在网站上看过不同的问题,这里有很好的信息,但我没有看到使用seekg来获得rgb值的任何答案。

我不是在找任何人为我生产代码,只是在寻找一些指导和推动正确的方向。

loc = (y * 100 + x) * 3;  // code given by professor with 100 being the width of the image
imageRaw.seekg(loc, ios::beg);

然后我就不知所措了

从那里,您可能需要读取三个字节,这将表示红色、绿色和蓝色值。你告诉我们的还不够多,不能确定订单的顺序;绿色几乎总是在中间,但RGB和BGR都相当常见。

从实用的角度来看,对于这种大小的图片,您通常根本不想使用seekg。您需要将整个图像读入内存,并查找存储数据的向量(或者数组,如果您坚持的话)中的值。

最新更新