Added test case to exercise all of the gdImageScale() modes.
Creates and shrinks a bunch of images using gdImageScale(), once per mode in both palette and truecolor. It does not use GD_DEFAULT (which is equivalent to one of the others) or GD_WEIGHTED4 (unsupported for scaling). Note that this test does not check if the resulting image looks anything like the source.master
parent
916d00c2f0
commit
f321961a3c
|
@ -204,3 +204,6 @@ Makefile.in
|
|||
/tests/gdimagerotate/bug00067
|
||||
/tests/gdimageline/gdImageAALine_thickness
|
||||
/tests/gdimageline/gdimageline_bug5
|
||||
/tests/gdinterpolatedscale/gdTrivialResize
|
||||
/tests/gdinterpolatedscale/gdModesAndPalettes
|
||||
|
||||
|
|
|
@ -29,7 +29,8 @@ check_PROGRAMS = \
|
|||
gif/bug00181 \
|
||||
gif/bug00227 \
|
||||
bmp/bmp_null \
|
||||
gdinterpolatedscale/gdTrivialResize
|
||||
gdinterpolatedscale/gdTrivialResize \
|
||||
gdinterpolatedscale/gdModesAndPalettes
|
||||
|
||||
EXTRA_PROGRAMS = \
|
||||
gdimagestringft/gdimagestringft_bbox \
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/* Exercise all scaling with all interpolation modes and ensure that
|
||||
* at least, something comes back. */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "gd.h"
|
||||
#include "gdtest.h"
|
||||
|
||||
#define X 100
|
||||
#define Y 100
|
||||
|
||||
#define NX 20
|
||||
#define NY 20
|
||||
|
||||
int main() {
|
||||
int method, i;
|
||||
|
||||
for(method = GD_BELL; method <= GD_TRIANGLE; method++) { /* GD_WEIGHTED4 is unsupported. */
|
||||
gdImagePtr im[2];
|
||||
|
||||
// printf("Method = %d\n", method);
|
||||
im[0] = gdImageCreateTrueColor(X, Y);
|
||||
im[1] = gdImageCreatePalette(X, Y);
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
gdImagePtr result;
|
||||
|
||||
// printf(" %s\n", i == 0 ? "truecolor" : "palette");
|
||||
|
||||
gdImageFilledRectangle(im[i], 0, 0, X-1, Y-1,
|
||||
gdImageColorExactAlpha(im[i], 255, 255, 255, 0));
|
||||
|
||||
gdImageSetInterpolationMethod(im[i], method);
|
||||
gdTestAssert(im[i]->interpolation_id == method); /* No getter yet. */
|
||||
|
||||
result = gdImageScale(im[i], NX, NY);
|
||||
gdTestAssert(result != NULL);
|
||||
gdTestAssert(result != im[i]);
|
||||
gdTestAssert(result->sx == NX && result->sy == NY);
|
||||
|
||||
gdImageDestroy(result);
|
||||
gdImageDestroy(im[i]);
|
||||
}/* for */
|
||||
}/* for*/
|
||||
|
||||
|
||||
return gdNumFailures();
|
||||
}/* main*/
|
Loading…
Reference in New Issue