#include <stdio.h>
#include <stdlib.h>
#include <png.h>
int imgSizeX = 1920;
int imgSizeY = 1080;
int imgNum = 100;
void writePNG(FILE *file, const char *img) {
png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
png_set_compression_level(png_ptr, 9);
png_infop info_ptr = png_create_info_struct( png_ptr );
png_init_io(png_ptr, file);
setjmp( png_jmpbuf(png_ptr) );
png_set_IHDR(png_ptr, info_ptr, imgSizeX, imgSizeY,
8, PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE,
PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
png_write_info(png_ptr, info_ptr);
setjmp( png_jmpbuf(png_ptr) );
png_bytep *row_pointers = new png_bytep[imgSizeY];
for (int y=0; y < imgSizeY; y++) {
row_pointers[y] = (png_byte*) &img[y*imgSizeX*3];
}
png_write_image(png_ptr, row_pointers);
setjmp( png_jmpbuf(png_ptr) );
png_write_end(png_ptr, NULL);
delete [] row_pointers;
}
libpng mingw-w64 build static library