所以这就是我的问题:
我有这个像素网格,我逐个阅读,每个像素都有一个RGB值。我想要做的是计算所代表的颜色组中的每一个(所以3x3),然后我想将其添加,以计算像素组的RGB,然后我必须将其转换为ASCII。所以基本上将9个像素降级为1并将其转换为ASCII字符,然后转到下一组,但我真的不知道它背后的逻辑,这是我的代码:
void izvedi1 (int visina, int sirina, FILE *in, FILE *o,
int znak, int n, int* tab)
{
int* tab2 = calloc(10000, sizeof(int));
int count = 0;
int num = 0;
for(int i = 0; i < visina; i++) {
for(int j = 0; j < sirina; j++) {
unsigned char r = fgetc(in);
unsigned char g = fgetc(in);
unsigned char b = fgetc(in);
znak = (r+g+b)/3;
tab[count] = znak;
count++;
}
}
for (int i = 0; i < visina; i+=n) {
for (int j = 0; j < sirina; j+=n) {
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
tab2[num] += tab[k];
}
}
fprintf(o, "%c", assign(tab2[num]));
}
fprintf(o,"\n");
}
fclose(in);
fclose(o);
}