Читал документацию, смотрел исходники PngTest.c и прочих - но с непривычки трудно сразу схватить суть - море #define по платформам и режимам работы. К тому же неизвестно, какие опции обязательны, а какие можно взять с умолчательными значениями (какими?).
Не могли бы вы привести наиминимальнейший пример записи черной точки на белом фоне.
нарисовать точку - и посмотреть /usr/share/doc/libpng-devel/* там вроде всё просто и чтение и запись. Вся фигня в том что там , насколько я помню, дефайнами разграничены различные методы использования libpng - для построчного чтения, чтения целиком, чтение interlaced файлов и т.д. Тебе надо убрать лишнее и оставить только запись файла целиком.