§ Как устроен формат

Этот формат переводится как Portable Pixel Map и настолько прост, что даже BMP кажется сложным.
Первые строки в файле PPM пишутся так:
P6
# Здесь может быть комментарий
640 400
255
  • Здесь P6 означает "магическое число формата". После P6 ставится символ \n переноса строки. Тут может быть не только P6, но и P3. Этот формат можно посмотреть тут.
  • Комментариев может быть сколько угодно, они начинаются с #
  • Сразу после комментария идет размер по ширине и высоте
  • 255 означает что далее идет RGB последовательность
После числа 255 идет также \n и сразу же после этого записан цвет в формате RGB, то есть, первым байтом идет компонента R, потом G, и потом B. И так повторяется для каждого пикселя.

§ Код для записи файла

В data находятся числа в формате int, причем blue-компонента находится в младшем байте. Альфа-канал не записывается.
Тестовый код для записи в файл

§ Код для чтения из PPM

Чтение из файла, создание новой области памяти и заполнить значениями RGB.