比较C中的真彩色像素

时间:2010-09-23 10:14:58

标签: c

这是我的第一个问题;希望我能够清楚......

我有这个结构可用

typedef struct COLORTRIPLE
{
  byte blue;
  byte green;
  byte red;
}

包含在另一个结构中:

struct color_temp
{ 
  COLORTRIPLE color;
  int temp;
};

和(编辑)

#define PIXEL(image, row, column)  \
    image.pixel [(row) * image.width + (column)]

是一个宏。

因此会有PIXEL(bmpin,row,column).red, PIXEL(bmpin,row,column).green and PIXEL(bmpin,row,column).blue

我需要逐个像素地扫描位图文件,并检查当前像素是否等于color_temp结构的一种颜色。

我尝试过类似的事情:

if ((PIXEL(bmpin,row,column))==(map[n].color))
{...}

,其中

struct color_temp map[]

是color_temp的向量。

但是cygwin gcc说:

error:request for member 'color' in something not a struct or a union

有什么建议吗?

由于

标记

2 个答案:

答案 0 :(得分:2)

试试这个:

int is_pixels_equal (COLORTRIPLE a, COLORTRIPLE b) {
  return (a.red == b.red && a.green == b.green && a.blue == b.blue);
}

答案 1 :(得分:0)

你不能直接比较C中的结构,它没有定义这样的运算符。因此,你必须自己实施,正如Williham Totland所说。有关更多讨论,请参阅this question