Я пытаюсь перевернуть изображение в оттенках серого по горизонтали. Указатель fp указывает на исходное изображение, а указатель fp1 создает горизонтально перевернутое изображение. Программа работает правильно, но изображение на выходе хуже …
for( i =0 ;i<width ; i++)
for(j=0; j <height; j++)
idata[i][height - 1 -j] = ( (unsigned char)fgetc(fp));
//flipping image
for( i =0 ;i<width ; i++)
for(j=0; j <height; j++)
putc(idata[i][j] , fp1);
в заголовочной копии изображения нет проблем. Я думаю, что проблема заключается в петле … Пожалуйста, помогите мне
Вы уверены, что не смешиваете ширину и высоту? Код, кажется, предполагает, что данные читаются в порядке столбцов, когда они, скорее всего, в порядке строк. Попробуйте перевернуть циклы for и размер для переворота, например так:
for(j = 0; j < height; j++)
for(i = 0; i < width; i++)
idata[width - 1 - i][j] = ( (unsigned char)fgetc(fp));
//flipping image
for(j = 0; j < height; j++)
for(i = 0; i < width; i++)
putc(idata[i][j] , fp1);
Других решений пока нет …