Blame tests/gdimagerotate/bug00067.c

Packit ed3af9
#include <stdio.h>
Packit ed3af9
#include <stdlib.h>
Packit ed3af9
#include "gd.h"
Packit ed3af9
Packit ed3af9
#include "gdtest.h"
Packit ed3af9
Packit ed3af9
int main()
Packit ed3af9
{
Packit ed3af9
	gdImagePtr im, exp;
Packit ed3af9
	char *path, filename[2048];
Packit ed3af9
	const char *file_im = "gdimagerotate/remirh128.png";
Packit ed3af9
	FILE *fp;
Packit ed3af9
	int color;
Packit ed3af9
	int error = 0;
Packit ed3af9
	int angle;
Packit ed3af9
Packit ed3af9
	fp = gdTestFileOpen(file_im);
Packit ed3af9
	im = gdImageCreateFromPng(fp);
Packit ed3af9
	fclose(fp);
Packit ed3af9
Packit ed3af9
	if (!im) {
Packit ed3af9
		gdTestErrorMsg("loading %s failed.\n", file_im);
Packit ed3af9
		return 1;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	color = gdImageColorAllocateAlpha(im, 255, 255, 255, 127);
Packit ed3af9
Packit ed3af9
	if (color < 0) {
Packit ed3af9
		gdTestErrorMsg("allocation color from image failed.\n");
Packit ed3af9
		gdImageDestroy(im);
Packit ed3af9
		return 1;
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	for (angle = 0; angle <= 180; angle += 15) {
Packit ed3af9
Packit ed3af9
		exp = gdImageRotateInterpolated(im, angle, color);
Packit ed3af9
Packit ed3af9
		if (!exp) {
Packit ed3af9
			gdTestErrorMsg("rotating image failed for %03d.\n", angle);
Packit ed3af9
			gdImageDestroy(im);
Packit ed3af9
			return 1;
Packit ed3af9
		}
Packit ed3af9
Packit ed3af9
		sprintf(filename, "bug00067_%03d_exp.png", angle);
Packit ed3af9
		path = gdTestFilePath2("gdimagerotate", filename);
Packit ed3af9
		if (!gdAssertImageEqualsToFile(path, exp)) {
Packit ed3af9
			gdTestErrorMsg("comparing rotated image to %s failed.\n", path);
Packit ed3af9
			error += 1;
Packit ed3af9
		}
Packit ed3af9
		free(path);
Packit ed3af9
Packit ed3af9
		gdImageDestroy(exp);
Packit ed3af9
	}
Packit ed3af9
Packit ed3af9
	gdImageDestroy(im);
Packit ed3af9
Packit ed3af9
	return error;
Packit ed3af9
}