eqemu

annotate 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
rev   line source
nuclear@10 1 #include <stdio.h>
nuclear@10 2 #include <imago2.h>
nuclear@10 3
nuclear@10 4 int main(int argc, char **argv)
nuclear@10 5 {
nuclear@10 6 const char *infile = "foo.jpg";
nuclear@10 7 const char *outfile = "bar.jpg";
nuclear@10 8 int i, j, xsz = 512, ysz = 512;
nuclear@10 9 struct img_pixmap img;
nuclear@10 10
nuclear@10 11 for(i=1; i<argc; i++) {
nuclear@10 12 if(argv[i][0] == '-' && argv[i][2] == 0) {
nuclear@10 13 switch(argv[i][1]) {
nuclear@10 14 case 'i':
nuclear@10 15 infile = argv[++i];
nuclear@10 16 break;
nuclear@10 17
nuclear@10 18 case 'o':
nuclear@10 19 outfile = argv[++i];
nuclear@10 20 break;
nuclear@10 21
nuclear@10 22 default:
nuclear@10 23 fprintf(stderr, "invalid option: %s\n", argv[i]);
nuclear@10 24 return 1;
nuclear@10 25 }
nuclear@10 26 } else {
nuclear@10 27 fprintf(stderr, "invalid argument: %s\n", argv[i]);
nuclear@10 28 return 1;
nuclear@10 29 }
nuclear@10 30 }
nuclear@10 31
nuclear@10 32 img_init(&img);
nuclear@10 33
nuclear@10 34 if(img_load(&img, infile) == -1) {
nuclear@10 35 unsigned char *pix;
nuclear@10 36
nuclear@10 37 fprintf(stderr, "failed to load image: %s, generating instead\n", infile);
nuclear@10 38
nuclear@10 39 if(img_set_pixels(&img, xsz, ysz, IMG_FMT_RGB24, 0) == -1) {
nuclear@10 40 perror("wtf");
nuclear@10 41 return 1;
nuclear@10 42 }
nuclear@10 43
nuclear@10 44 pix = img.pixels;
nuclear@10 45 for(i=0; i<ysz; i++) {
nuclear@10 46 for(j=0; j<xsz; j++) {
nuclear@10 47 int bw = ((i >> 5) & 1) == ((j >> 5) & 1);
nuclear@10 48
nuclear@10 49 *pix++ = bw ? 255 : 0;
nuclear@10 50 *pix++ = 127;
nuclear@10 51 *pix++ = bw ? 0 : 255;
nuclear@10 52 }
nuclear@10 53 }
nuclear@10 54 }
nuclear@10 55
nuclear@10 56 if(img_save(&img, outfile) == -1) {
nuclear@10 57 fprintf(stderr, "failed to save file %s\n", outfile);
nuclear@10 58 return 1;
nuclear@10 59 }
nuclear@10 60
nuclear@10 61 img_destroy(&img);
nuclear@10 62 return 0;
nuclear@10 63 }