eqemu

diff libs/libimago/test/test.c @ 10:819c7ebb1bec

added libimago to avoid the external dependency
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 18 Jul 2014 05:07:40 +0300
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/libs/libimago/test/test.c	Fri Jul 18 05:07:40 2014 +0300
     1.3 @@ -0,0 +1,63 @@
     1.4 +#include <stdio.h>
     1.5 +#include <imago2.h>
     1.6 +
     1.7 +int main(int argc, char **argv)
     1.8 +{
     1.9 +	const char *infile = "foo.jpg";
    1.10 +	const char *outfile = "bar.jpg";
    1.11 +	int i, j, xsz = 512, ysz = 512;
    1.12 +	struct img_pixmap img;
    1.13 +
    1.14 +	for(i=1; i<argc; i++) {
    1.15 +		if(argv[i][0] == '-' && argv[i][2] == 0) {
    1.16 +			switch(argv[i][1]) {
    1.17 +			case 'i':
    1.18 +				infile = argv[++i];
    1.19 +				break;
    1.20 +
    1.21 +			case 'o':
    1.22 +				outfile = argv[++i];
    1.23 +				break;
    1.24 +
    1.25 +			default:
    1.26 +				fprintf(stderr, "invalid option: %s\n", argv[i]);
    1.27 +				return 1;
    1.28 +			}
    1.29 +		} else {
    1.30 +			fprintf(stderr, "invalid argument: %s\n", argv[i]);
    1.31 +			return 1;
    1.32 +		}
    1.33 +	}
    1.34 +
    1.35 +	img_init(&img);
    1.36 +
    1.37 +	if(img_load(&img, infile) == -1) {
    1.38 +		unsigned char *pix;
    1.39 +
    1.40 +		fprintf(stderr, "failed to load image: %s, generating instead\n", infile);
    1.41 +
    1.42 +		if(img_set_pixels(&img, xsz, ysz, IMG_FMT_RGB24, 0) == -1) {
    1.43 +			perror("wtf");
    1.44 +			return 1;
    1.45 +		}
    1.46 +
    1.47 +		pix = img.pixels;
    1.48 +		for(i=0; i<ysz; i++) {
    1.49 +			for(j=0; j<xsz; j++) {
    1.50 +				int bw = ((i >> 5) & 1) == ((j >> 5) & 1);
    1.51 +
    1.52 +				*pix++ = bw ? 255 : 0;
    1.53 +				*pix++ = 127;
    1.54 +				*pix++ = bw ? 0 : 255;
    1.55 +			}
    1.56 +		}
    1.57 +	}
    1.58 +
    1.59 +	if(img_save(&img, outfile) == -1) {
    1.60 +		fprintf(stderr, "failed to save file %s\n", outfile);
    1.61 +		return 1;
    1.62 +	}
    1.63 +
    1.64 +	img_destroy(&img);
    1.65 +	return 0;
    1.66 +}