libpng には、行単位で画像を読み取るための関数がいくつか用意されています。
宣言方法は次のとおりです。
void png_read_row (png_structp png_ptr, png_bytep row, png_bytep display_row)
void png_read_rows (png_structp png_ptr, png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)
3 番目の引数の意味は何ですか? libpng マニュアルでは、NULL に設定されており、その使用法が示されています。