Я пишу в C, и мне нужно написать код, который будет инвертировать значения RGB для каждого пикселя в изображении. Это простой процесс, когда вы принимаете максимальное значение цвета и вычитаете фактические значения RGB. Я успешно прочитал максимальное значение цвета, но при попытке инвертировать значения все возвращается как 0 и при записи в новый файл не читается. Ниже приведен код, какие-нибудь идеи?Инвертирование значений изображения PPM
Инверсия картину
int i,j;
for(i=0; i<myPic->rows;++i) {
//Moves up and down the columns reaching all Pixels
//Moves across left to right across all columns
for (j=0;j<myPic->cols;++j) {
//Inverstion requires the actual value to be subtracted from the max
myPic->pixels[i][j].red = myPic->colors - myPic->pixels[i][j].red;
myPic->pixels[i][j].green = myPic->colors - myPic->pixels[i][j].green;
myPic->pixels[i][j].blue = myPic->colors - myPic->pixels[i][j].blue;
}
}
return myPic;
}
Вывод изображения
fprintf(name,"P3\n%d %d\n%d\n",myPic->rows,myPic->cols,myPic->colors);
//The P3,rows,columns,and color values are all printed first
int i,j;
for(i=0; i< myPic->rows;++i) {
for(j=0; j<myPic->cols;++j) { //Each Pixel is printed one at a time
fprintf(name,"%d",myPic->pixels[i][j].red); //Red printed first
fprintf(name,"%d",myPic->pixels[i][j].green); //Green printed second
fprintf(name,"%d",myPic->pixels[i][j].blue); //Blue printed third
fprintf("\n");
}
}
}
Спасибо за помощь, ребята, это то, что я использую в настоящее время и он работает
Я понимаю, что вы имеете в виду сейчас. Я просто воспользовался функцией чтения вначале и переместил ее вниз, слегка изменив ее, поэтому я понимаю, почему переписывание - это не то, что я хотел – yup