У меня возникли проблемы с поиском, как читать в файле ppm в стандартный ввод, сохраняя пиксели в двухмерном массиве new_pix в C. Я не очень знаете, как это начать. Заранее спасибо!Как читать файл PPM в стандартный ввод
0
A
ответ
1
Предполагаете, вы можете получить размеры изображения из файла (назовите их W
и H
). Если нет, прочитайте о формате от wikipedia
Теперь вам нужно выделить память для 2d-массива, который вы хотите создать. Вы будете нуждаться в char **buf
(в предположении, 8-битные оттенки серого. Вы можете использовать long
или long long
для 32/64 битных изображений.
Далее выделить пространство для указателей, где вы будете хранить строки изображения.
buf=(char**)malloc(sizeof(char*)*H);
Далее необходимо выделить место для каждой строки и читать из стандартного ввода (вы можете использовать scanf
в цикле).
for(int y=0;y<H;y++){
buf[y]=(char*)malloc(sizeof(char)*W);
for(int x=0;x<W;x++)
scanf("%d",&buff[y][x]);
}
и вы сделали! Обратите внимание, что вы должны сделать проверку на таНос Ретурах n и ограничить значения W и H до нормальных значений, если вы планируете распространять код.