计算RGB颜色的强度



我想问我如何可以计算我的变量y的RGB颜色强度。

RGB_Trypel结构体中的r,g,b字母表示数组rot, gelb, gruen, weiss, schwarz的每个数组元素。所以这里我需要将r g b数组元素与变量y中显示的数字相乘

如果你能帮助我,我真的很高兴。


#define CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct RGB_Trypel
{

unsigned char r, g, b; // speichert Werte nur bis 255 und positive Werte
};


int main(void)
{

struct RGB_Trypel rot = { 255,0,0 }, gelb = { 255,255,0 }, gruen = { 0,255,0 };
const  struct RGB_Trypel weiss = { 255,255,255 };
const  struct RGB_Trypel schwarz = { 0,0,0 };
struct RGB_Trypel fafeld[5] = { rot, gelb, gruen, weiss, schwarz };
int n = 5;

unsigned char intensiteat(struct RGB_Trypel t);
{
int = y;

y = 0.299 * r + 0.587 * g + 0.114 * b;
}


for (int i = 0; i < n; i++)
{
printf("(%3d,%3d,%3d): t intensiteat(%d) n",fafeld[i].r, fafeld[i].g, fafeld[i].b, intensiteat(fafeld[i]);

}

return 0;
}

我真的不确定如何将我的结构数组元素放入函数中,并让它在我的y变量中乘以以下数字。

你最大的问题是这个

unsigned char intensiteat(struct RGB_Trypel t);
{
int = y;

y = 0.299 * r + 0.587 * g + 0.114 * b;
}

看起来像是试图在另一个函数中定义一个函数。这行不通。移动到main之前。这样的:

unsigned char intensiteat(struct RGB_Trypel t)
{
int = y;

y = 0.299 * r + 0.587 * g + 0.114 * b;
}

int main(void)
{

第二,在函数内部引用结构体的字段,这样做:

unsigned char intensiteat(struct RGB_Trypel t)
{
int = y;

y = 0.299 * t.r + 0.587 * t.g + 0.114 * t.bb;
}

你有很多其他的错误,但这将让你开始

顺便说一句,你错过了前面的_定义。应该是:

#define _CRT_SECURE_NO_WARNINGS

相关内容

  • 没有找到相关文章

最新更新