source: libpipi/trunk/src/pipi.c @ 2772

Last change on this file since 2772 was 2755, checked in by Sam Hocevar, 15 years ago
  • Rename --rgb into --combine and add --split. Basic per-channel operations are now possible:

pipi src.png --split --contrast -.2 --combine -o dest.png

File size: 7.1 KB
Line 
1#include "config.h"
2#include "common.h"
3
4#include <stdio.h>
5#include <stdlib.h>
6#include <string.h>
7
8#include <pipi.h>
9
10int main(int argc, char *argv[])
11{
12    pipi_context_t *ctx;
13
14    ctx = pipi_create_context();
15
16    while(*++argv)
17    {
18        if(!strcmp(argv[0], "--dup"))
19        {
20            if(pipi_command(ctx, "dup") != 0)
21                return EXIT_FAILURE;
22        }
23        else if(!strcmp(argv[0], "--swap"))
24        {
25            if(pipi_command(ctx, "swap") != 0)
26                return EXIT_FAILURE;
27        }
28        else if(!strcmp(argv[0], "--roll"))
29        {
30            if(argv[1] == NULL)
31                return EXIT_FAILURE;
32            if(pipi_command(ctx, "roll", argv[1]) != 0)
33                return EXIT_FAILURE;
34            argv++;
35        }
36        else if(!strcmp(argv[0], "--scale"))
37        {
38            if(argv[1] == NULL)
39                return EXIT_FAILURE;
40            if(pipi_command(ctx, "scale", argv[1]) != 0)
41                return EXIT_FAILURE;
42            argv++;
43        }
44        else if(!strcmp(argv[0], "--geometry"))
45        {
46            if(argv[1] == NULL)
47                return EXIT_FAILURE;
48            if(pipi_command(ctx, "geometry", argv[1]) != 0)
49                return EXIT_FAILURE;
50            argv++;
51        }
52        else if(!strcmp(argv[0], "--tile"))
53        {
54            if(argv[1] == NULL)
55                return EXIT_FAILURE;
56            if(pipi_command(ctx, "tile", argv[1]) != 0)
57                return EXIT_FAILURE;
58            argv++;
59        }
60        else if(!strcmp(argv[0], "--dither"))
61        {
62            if(argv[1] == NULL)
63                return EXIT_FAILURE;
64            if(pipi_command(ctx, "dither", argv[1]) != 0)
65                return EXIT_FAILURE;
66            argv++;
67        }
68        else if(!strcmp(argv[0], "--blur"))
69        {
70            if(argv[1] == NULL)
71                return EXIT_FAILURE;
72            if(pipi_command(ctx, "blur", argv[1]) != 0)
73                return EXIT_FAILURE;
74            argv++;
75        }
76        else if(!strcmp(argv[0], "--boxblur"))
77        {
78            if(argv[1] == NULL)
79                return EXIT_FAILURE;
80            if(pipi_command(ctx, "boxblur", argv[1]) != 0)
81                return EXIT_FAILURE;
82            argv++;
83        }
84        else if(!strcmp(argv[0], "--median"))
85        {
86            if(argv[1] == NULL)
87                return EXIT_FAILURE;
88            if(pipi_command(ctx, "median", argv[1]) != 0)
89                return EXIT_FAILURE;
90            argv++;
91        }
92        else if(!strcmp(argv[0], "--gray"))
93        {
94            if(pipi_command(ctx, "gray") != 0)
95                return EXIT_FAILURE;
96        }
97        else if(!strcmp(argv[0], "--brightness"))
98        {
99            if(argv[1] == NULL)
100                return EXIT_FAILURE;
101            if(pipi_command(ctx, "brightness", argv[1]) != 0)
102                return EXIT_FAILURE;
103            argv++;
104        }
105        else if(!strcmp(argv[0], "--contrast"))
106        {
107            if(argv[1] == NULL)
108                return EXIT_FAILURE;
109            if(pipi_command(ctx, "contrast", argv[1]) != 0)
110                return EXIT_FAILURE;
111            argv++;
112        }
113        else if(!strcmp(argv[0], "--autocontrast"))
114        {
115            if(pipi_command(ctx, "autocontrast") != 0)
116                return EXIT_FAILURE;
117        }
118        else if(!strcmp(argv[0], "--hflip"))
119        {
120            if(pipi_command(ctx, "hflip") != 0)
121                return EXIT_FAILURE;
122        }
123        else if(!strcmp(argv[0], "--vflip"))
124        {
125            if(pipi_command(ctx, "vflip") != 0)
126                return EXIT_FAILURE;
127        }
128        else if(!strcmp(argv[0], "--rotate90"))
129        {
130            if(pipi_command(ctx, "rotate90") != 0)
131                return EXIT_FAILURE;
132        }
133        else if(!strcmp(argv[0], "--rotate180"))
134        {
135            if(pipi_command(ctx, "rotate180") != 0)
136                return EXIT_FAILURE;
137        }
138        else if(!strcmp(argv[0], "--rotate270"))
139        {
140            if(pipi_command(ctx, "rotate270") != 0)
141                return EXIT_FAILURE;
142        }
143        else if(!strcmp(argv[0], "--invert"))
144        {
145            if(pipi_command(ctx, "invert") != 0)
146                return EXIT_FAILURE;
147        }
148        else if(!strcmp(argv[0], "--threshold"))
149        {
150            if(argv[1] == NULL)
151                return EXIT_FAILURE;
152            if(pipi_command(ctx, "threshold", argv[1]) != 0)
153                return EXIT_FAILURE;
154            argv++;
155        }
156        else if(!strcmp(argv[0], "--dilate"))
157        {
158            if(pipi_command(ctx, "dilate") != 0)
159                return EXIT_FAILURE;
160        }
161        else if(!strcmp(argv[0], "--erode"))
162        {
163            if(pipi_command(ctx, "erode") != 0)
164                return EXIT_FAILURE;
165        }
166        else if(!strcmp(argv[0], "--wrap"))
167        {
168            if(pipi_command(ctx, "wrap") != 0)
169                return EXIT_FAILURE;
170        }
171        else if(!strcmp(argv[0], "--combine"))
172        {
173            if(pipi_command(ctx, "combine") != 0)
174                return EXIT_FAILURE;
175        }
176        else if(!strcmp(argv[0], "--split"))
177        {
178            if(pipi_command(ctx, "split") != 0)
179                return EXIT_FAILURE;
180        }
181        else if(!strcmp(argv[0], "--mean"))
182        {
183            if(pipi_command(ctx, "mean") != 0)
184                return EXIT_FAILURE;
185        }
186        else if(!strcmp(argv[0], "--min"))
187        {
188            if(pipi_command(ctx, "min") != 0)
189                return EXIT_FAILURE;
190        }
191        else if(!strcmp(argv[0], "--max"))
192        {
193            if(pipi_command(ctx, "max") != 0)
194                return EXIT_FAILURE;
195        }
196        else if(!strcmp(argv[0], "--add"))
197        {
198            if(pipi_command(ctx, "add") != 0)
199                return EXIT_FAILURE;
200        }
201        else if(!strcmp(argv[0], "--sub"))
202        {
203            if(pipi_command(ctx, "sub") != 0)
204                return EXIT_FAILURE;
205        }
206        else if(!strcmp(argv[0], "--difference"))
207        {
208            if(pipi_command(ctx, "difference") != 0)
209                return EXIT_FAILURE;
210        }
211        else if(!strcmp(argv[0], "--multiply"))
212        {
213            if(pipi_command(ctx, "multiply") != 0)
214                return EXIT_FAILURE;
215        }
216        else if(!strcmp(argv[0], "--divide"))
217        {
218            if(pipi_command(ctx, "divide") != 0)
219                return EXIT_FAILURE;
220        }
221        else if(!strcmp(argv[0], "--screen"))
222        {
223            if(pipi_command(ctx, "screen") != 0)
224                return EXIT_FAILURE;
225        }
226        else if(!strcmp(argv[0], "--overlay"))
227        {
228            if(pipi_command(ctx, "overlay") != 0)
229                return EXIT_FAILURE;
230        }
231        else if(!strcmp(argv[0], "--output") || !strcmp(argv[0], "-o"))
232        {
233            if(argv[1] == NULL)
234                return EXIT_FAILURE;
235            if(pipi_command(ctx, "save", argv[1]) != 0)
236                return EXIT_FAILURE;
237            argv++;
238        }
239        else
240        {
241            if(pipi_command(ctx, "load", argv[0]) != 0)
242                return EXIT_FAILURE;
243        }
244    }
245
246    pipi_destroy_context(ctx);
247
248    return EXIT_SUCCESS;
249}
250
Note: See TracBrowser for help on using the repository browser.