All pastes #1214751 Raw Edit

libpng example

public c v1 · immutable
#1214751 ·published 2008-09-30 14:12 UTC
rendered paste body
#include <stdlib.h>#include <stdio.h>#include <string.h>#define PNG_DEBUG 3#include <png.h>int width = 64, height = 64;png_color pal[2] = {{255,20,11},{0,17,255}};unsigned char rowtowriterepeatedly[64] = {  1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,  1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,  1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,  1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1};int main(int argc, char **argv){  int i;  png_structp png_ptr;  png_infop info_ptr;  FILE *fp = fopen("out.png", "wb");  if (!fp) {    printf("error'd: unable to open file");    return 1;  }    png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);  if (!png_ptr) {    printf("[write_png_file] png_create_write_struct failed");    return 1;  }  info_ptr = png_create_info_struct(png_ptr);  if (!info_ptr) {    printf("[write_png_file] png_create_info_struct failed");    return 1;  }  if (setjmp(png_jmpbuf(png_ptr))) {    printf("error'd: writing error");    return 1;  }  png_init_io(png_ptr, fp);  png_set_IHDR(png_ptr, info_ptr, width, height,         8, PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE,         PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);  png_set_PLTE(png_ptr, info_ptr, pal, 2);  png_write_info(png_ptr, info_ptr);    for (i=0;i<height;i++) {    png_write_row(png_ptr, rowtowriterepeatedly);  }  png_write_end(png_ptr, NULL);  fclose(fp);  return 0;}