Blame examples/resize.c

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
}