~reviczky/luatex/texlive-bin-git

« back to all changes in this revision

Viewing changes to libs/gd/libgd-2.1.0/examples/flip.c

  • Committer: Adam Reviczky
  • Date: 2015-04-26 22:40:47 UTC
  • Revision ID: adam.reviczky@kclalumni.net-20150426224047-i2p26n3wqphupq6z
TeX Live 2015 import (rev. 37052)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $Id$ */
2
 
#include "gd.h"
3
 
#include <stdio.h>
4
 
#include <stdlib.h>
5
 
gdImagePtr loadImage(const char *name)
6
 
{
7
 
        FILE *fp;
8
 
        gdImagePtr im;
9
 
 
10
 
        fp = fopen(name, "rb");
11
 
        if (!fp) {
12
 
                fprintf(stderr, "Can't open jpeg file\n");
13
 
                return NULL;
14
 
        }
15
 
 
16
 
        im = gdImageCreateFromJpeg(fp);
17
 
        fclose(fp);
18
 
        return im;
19
 
}
20
 
 
21
 
int savePngImage(gdImagePtr im, const char *name)
22
 
{
23
 
        FILE *fp;
24
 
        fp = fopen(name, "wb");
25
 
        if (!fp) {
26
 
                fprintf(stderr, "Can't save png image fromtiff.png\n");
27
 
                return 0;
28
 
        }
29
 
        gdImagePng(im, fp);
30
 
        fclose(fp);
31
 
        return 1;
32
 
}
33
 
 
34
 
int main(int argc, char **arg)
35
 
{
36
 
        gdImagePtr im;
37
 
        int returncode = 0;
38
 
 
39
 
        if (argc < 2) {
40
 
                fprintf(stderr, "Usage: flip [filename.png]\n");
41
 
                return 1;
42
 
        }
43
 
 
44
 
        im = loadImage(arg[1]);
45
 
        if (!im) goto error;
46
 
        gdImageFlipHorizontal(im);
47
 
        if (!savePngImage(im, "flip_horizontal.png")) {
48
 
                goto error;
49
 
        }
50
 
        gdImageDestroy(im);
51
 
 
52
 
        im = loadImage(arg[1]);
53
 
        if (!im) goto error;
54
 
        gdImageFlipVertical(im);
55
 
        if (!savePngImage(im, "flip_vertical.png")) {
56
 
                goto error;
57
 
        }
58
 
        gdImageDestroy(im);
59
 
 
60
 
        im = loadImage(arg[1]);
61
 
        if (!im) goto error;
62
 
        gdImageFlipBoth(im);
63
 
        if (!savePngImage(im, "flip_both.png")) {
64
 
                goto error;
65
 
        }
66
 
        gdImageDestroy(im);
67
 
 
68
 
        goto done;
69
 
 
70
 
error:
71
 
        returncode = 1;
72
 
 
73
 
done:
74
 
        return returncode;
75
 
}