#include #include #include #include #include typedef uint8_t uint8; typedef uint32_t uint32; const int bytesPerPixel = 3; /// red, green, blue void usage(); uint32 averagergb(png_image *, uint8 *); int main(int argc, char **argv){ if(argc == 1) usage(); char *imageFileName = "output.png"; int height = 720; int width = argc-1; int percent = 0; uint32 frames[width]; #pragma omp parallel for for(int i =1;i> 16)&0xff); image[i][j][1] = ((frames[j] >> 8)&0xff); image[i][j][0] = (frames[j] & 0xff); } } png_image output = {0}; output.format = PNG_FORMAT_RGB; output.version = PNG_IMAGE_VERSION; output.width = width; output.height = height; png_image_write_to_file(&output, imageFileName, 0, image, 0, NULL); } void usage() { fprintf(stderr, "USAGE: ./frames2img PNGs..."); exit(1); } uint32 averagergb(png_image *img, uint8 *buffer) { png_image image = *img; double sumR = 0; double sumG = 0; double sumB = 0; double fact = image.width * image.height; for(int y =0;y