From 5de9ca91cbdef6aff5e6429c6f589c03c8262acd Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Thu, 10 Jul 2003 00:11:11 +0000 Subject: [PATCH] - MFH --- ext/gd/libgd/gd.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index fa8a25d88f..ae311c66b1 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -2541,7 +2541,7 @@ void gdImageSkewY (gdImagePtr dst, gdImagePtr src, int uCol, int iOffset, double gdImagePtr gdImageRotate90 (gdImagePtr src) { int uY, uX; - int c; + int c, r,g,b,a; gdImagePtr dst; typedef int (*FuncPtr)(gdImagePtr, int, int); FuncPtr f; @@ -2552,12 +2552,20 @@ gdImagePtr gdImageRotate90 (gdImagePtr src) f = gdImageGetPixel; } dst = gdImageCreateTrueColor(src->sy, src->sx); + if (dst != NULL) { gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { for (uX = 0; uXsx; uX++) { c = f (src, uX, uY); + if (!src->trueColor) { + r = gdImageRed(src,c); + g = gdImageGreen(src,c); + b = gdImageBlue(src,c); + a = gdImageAlpha(src,c); + c = gdTrueColorAlpha(r, g, b, a); + } gdImageSetPixel(dst, uY, (dst->sy - uX - 1), c); } } @@ -2570,7 +2578,7 @@ gdImagePtr gdImageRotate90 (gdImagePtr src) gdImagePtr gdImageRotate180 (gdImagePtr src) { int uY, uX; - int c; + int c,r,g,b,a; gdImagePtr dst; typedef int (*FuncPtr)(gdImagePtr, int, int); FuncPtr f; @@ -2581,12 +2589,20 @@ gdImagePtr gdImageRotate180 (gdImagePtr src) f = gdImageGetPixel; } dst = gdImageCreateTrueColor(src->sx, src->sy); + if (dst != NULL) { gdImagePaletteCopy (dst, src); for (uY = 0; uYsy; uY++) { for (uX = 0; uXsx; uX++) { c = f (src, uX, uY); + if (!src->trueColor) { + r = gdImageRed(src,c); + g = gdImageGreen(src,c); + b = gdImageBlue(src,c); + a = gdImageAlpha(src,c); + c = gdTrueColorAlpha(r, g, b, a); + } gdImageSetPixel(dst, (dst->sx - uX - 1), (dst->sy - uY - 1), c); } } @@ -2599,7 +2615,7 @@ gdImagePtr gdImageRotate180 (gdImagePtr src) gdImagePtr gdImageRotate270 ( gdImagePtr src ) { int uY, uX; - int c; + int c,r,g,b,a; gdImagePtr dst; typedef int (*FuncPtr)(gdImagePtr, int, int); FuncPtr f; @@ -2617,6 +2633,13 @@ gdImagePtr gdImageRotate270 ( gdImagePtr src ) for (uY = 0; uYsy; uY++) { for (uX = 0; uXsx; uX++) { c = f (src, uX, uY); + if (!src->trueColor) { + r = gdImageRed(src,c); + g = gdImageGreen(src,c); + b = gdImageBlue(src,c); + a = gdImageAlpha(src,c); + c = gdTrueColorAlpha(r, g, b, a); + } gdImageSetPixel(dst, (dst->sx - uY - 1), uX, c); } } -- 2.50.1