Mercurial > mxe-octave
view src/libpng-test.c @ 4449:1933a9113e65
of-*: add octave as a dependancy to the of packages is binary enable is set (Bug #46235)
* src/of-actuarial.mk, src/of-communications.mk, src/of-control.mk, src/of-data-smoothing.mk,
src/of-database.mk, src/of-dataframe.mk, src/of-dicom.mk, src/of-financial.mk, src/of-fits.mk,
src/of-fl-core.mk, src/of-fuzzy-logic-toolkit.mk, src/of-ga.mk, src/of-general.mk, src/of-generate_html.mk,
src/of-geometry.mk, src/of-gsl.mk, src/of-image.mk, src/of-instrument-control.mk, src/of-interval.mk,
src/of-io.mk, src/of-linear-algebra.mk, src/of-lssa.mk, src/of-ltfat.mk, src/of-mapping.mk,
src/of-miscellaneous.mk, src/of-nan.mk, src/of-netcdf.mk, src/of-nurbs.mk, src/of-ocs.mk, src/of-octcdf.mk,
src/of-odepkg.mk, src/of-optim.mk, src/of-quaternion.mk, src/of-queueing.mk, src/of-signal.mk, src/of-sockets.mk,
src/of-sparsersb.mk, src/of-specfun.mk, src/of-splines.mk, src/of-statistics.mk, src/of-stk.mk,
src/of-strings.mk, src/of-struct.mk, src/of-tisean.mk, src/of-tsa.mk, src/of-video.mk, src/of-windows.mk,
src/of-zenity.mk, src/of-zeromq.mk: add $(PKG)_DEPS += $(OCTAVE_TARGET) if ENABLE_BINARY_PACKAGES = yes
author | John D |
---|---|
date | Mon, 14 Aug 2017 09:12:34 -0400 |
parents | 14b3f5ea78ae |
children |
line wrap: on
line source
/* * This file is part of MXE. * See index.html for further information. * * This is a slightly modified version of: * http://ironalbatross.net/wiki/index.php5?title=CPP_LIBPNG#Minimal_Example_of_writing_a_PNG_File */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <png.h> int main(int argc, char *argv[]) { (void)argc; (void)argv; /* PNG structs and types */ png_byte color_type; png_byte bit_depth; png_structp png_ptr; png_infop info_ptr; png_bytep *row_pointers; int height, width; FILE *fp; width = 640; height = 480; color_type = PNG_COLOR_TYPE_RGB; bit_depth = 8; /* Number of bits per color, not per pixel */ /* Dynamic 2D array in C */ row_pointers = (png_bytep *)malloc( sizeof(png_bytep) * height); int i; for(i = 0; i < height; i++) { int j; row_pointers[i] = malloc(sizeof(png_byte) * width * 3); for(j = 0; j < width; j++) { row_pointers[i][0+3*j] = i % 255; /* R */ row_pointers[i][1+3*j] = j % 255; /* G */ row_pointers[i][2+3*j] = (i * j) % 255; /* B */ } } /* Write the data out to the PNG file */ fp = fopen("test.png","wb"); png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,NULL,NULL,NULL); info_ptr = png_create_info_struct(png_ptr); png_init_io(png_ptr,fp); png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, color_type, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); png_write_info(png_ptr, info_ptr); png_write_image(png_ptr, row_pointers); png_write_end(png_ptr, NULL); /* Free up memory after use */ for(i = 0; i < height; i++) { free(row_pointers[i]); } free(row_pointers); return 0; }