From: Pierre Joye Date: Thu, 10 Jul 2003 00:11:11 +0000 (+0000) Subject: - MFH X-Git-Tag: php-4.3.3RC2~145 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5de9ca91cbdef6aff5e6429c6f589c03c8262acd;p=php - MFH --- 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); } }