|
Packit Service |
df60bb |
#include "gd.h"
|
|
Packit Service |
df60bb |
#include <stdio.h>
|
|
Packit Service |
df60bb |
#include <stdlib.h>
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
int main (int argc, char *argv[]) {
|
|
Packit Service |
df60bb |
FILE *fp;
|
|
Packit Service |
df60bb |
gdImagePtr in, out;
|
|
Packit Service |
df60bb |
int w, h;
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* Help */
|
|
Packit Service |
df60bb |
if (argc<=4) {
|
|
Packit Service |
df60bb |
printf("%s input.jpg output.jpg width height\n", argv[0]);
|
|
Packit Service |
df60bb |
return 1;
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* Size */
|
|
Packit Service |
df60bb |
w = atoi(argv[3]);
|
|
Packit Service |
df60bb |
h = atoi(argv[4]);
|
|
Packit Service |
df60bb |
if (w<=0 || h<=0) {
|
|
Packit Service |
df60bb |
fprintf(stderr, "Bad size %dx%d\n", h, w);
|
|
Packit Service |
df60bb |
return 2;
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* Input */
|
|
Packit Service |
df60bb |
fp = fopen(argv[1], "rb");
|
|
Packit Service |
df60bb |
if (!fp) {
|
|
Packit Service |
df60bb |
fprintf(stderr, "Can't read image %s\n", argv[1]);
|
|
Packit Service |
df60bb |
return 3;
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
in = gdImageCreateFromJpeg(fp);
|
|
Packit Service |
df60bb |
fclose(fp);
|
|
Packit Service |
df60bb |
if (!in) {
|
|
Packit Service |
df60bb |
fprintf(stderr, "Can't create image from %s\n", argv[1]);
|
|
Packit Service |
df60bb |
return 4;
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* Resize */
|
|
Packit Service |
df60bb |
gdImageSetInterpolationMethod(in, GD_BILINEAR_FIXED);
|
|
Packit Service |
df60bb |
out = gdImageScale(in, w, h);
|
|
Packit Service |
df60bb |
if (!out) {
|
|
Packit Service |
df60bb |
fprintf(stderr, "gdImageScale fails\n");
|
|
Packit Service |
df60bb |
return 5;
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* Output */
|
|
Packit Service |
df60bb |
fp = fopen(argv[2], "wb");
|
|
Packit Service |
df60bb |
if (!fp) {
|
|
Packit Service |
df60bb |
fprintf(stderr, "Can't save image %s\n", argv[2]);
|
|
Packit Service |
df60bb |
return 6;
|
|
Packit Service |
df60bb |
}
|
|
Packit Service |
df60bb |
gdImageJpeg(out, fp, 90);
|
|
Packit Service |
df60bb |
fclose(fp);
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
/* Cleanups */
|
|
Packit Service |
df60bb |
gdImageDestroy(in);
|
|
Packit Service |
df60bb |
gdImageDestroy(out);
|
|
Packit Service |
df60bb |
|
|
Packit Service |
df60bb |
return 0;
|
|
Packit Service |
df60bb |
}
|