pajoye          Wed Jul  9 20:09:24 2003 EDT

  Modified files:              
    /php-src/ext/gd/libgd       gd.c 
  Log:
  - wrong patch applied for #23792, fixed
  
  
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.59 php-src/ext/gd/libgd/gd.c:1.60
--- php-src/ext/gd/libgd/gd.c:1.59      Wed Jul  9 06:36:07 2003
+++ php-src/ext/gd/libgd/gd.c   Wed Jul  9 20:09:23 2003
@@ -2541,7 +2541,7 @@
 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;
@@ -2551,6 +2551,7 @@
        } else {
                f = gdImageGetPixel;
        }
+       dst = gdImageCreateTrueColor(src->sy, src->sx);
 
        if (dst != NULL) {
                gdImagePaletteCopy (dst, src);
@@ -2558,6 +2559,13 @@
                for (uY = 0; uY<src->sy; uY++) {
                        for (uX = 0; uX<src->sx; 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,18 +2578,17 @@
 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;
 
        if (src->trueColor) {
-               dst = gdImageCreateTrueColor ( src->sx,src->sy);
                f = gdImageGetTrueColorPixel;
        } else {
-               dst = gdImageCreate (src->sx, src->sy);
                f = gdImageGetPixel;
        }
+       dst = gdImageCreateTrueColor(src->sx, src->sy);
 
        if (dst != NULL) {
                gdImagePaletteCopy (dst, src);
@@ -2589,6 +2596,13 @@
                for (uY = 0; uY<src->sy; uY++) {
                        for (uX = 0; uX<src->sx; 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);
                        }
                }
@@ -2601,18 +2615,17 @@
 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;
 
        if (src->trueColor) {
-               dst = gdImageCreateTrueColor (src->sy, src->sx);
                f = gdImageGetTrueColorPixel;
        } else {
-               dst = gdImageCreate (src->sy, src->sx);
                f = gdImageGetPixel;
        }
+       dst = gdImageCreateTrueColor (src->sy, src->sx);
 
        if (dst != NULL) {
                gdImagePaletteCopy (dst, src);
@@ -2620,6 +2633,13 @@
                for (uY = 0; uY<src->sy; uY++) {
                        for (uX = 0; uX<src->sx; 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);
                        }
                }
@@ -2648,13 +2668,12 @@
 
        /* 1st shear */
        if (src->trueColor) {
-               dst1 = gdImageCreateTrueColor (newx, newy);
                f = gdImageGetTrueColorPixel;
        } else {
-               dst1 = gdImageCreate (newx, newy);
                f = gdImageGetPixel;
        }
 
+       dst1 = gdImageCreateTrueColor(newx, newy);
        /******* Perform 1st shear (horizontal) ******/
        if (dst1 == NULL) {
                return NULL;
@@ -2761,15 +2780,9 @@
                return NULL;
        }
 
-        if (!gdImageTrueColor(src) && clrBack>=gdImageColorsTotal(src)) {
-                return NULL;
-        }
-
-       clrBackR = gdImageRed(src, clrBack);
-       clrBackG = gdImageGreen(src, clrBack);
-       clrBackB = gdImageBlue(src, clrBack);
-       clrBackA = gdImageAlpha(src, clrBack);
-       clrBack = gdIlmageColorAllocateAlpha(pMidImg, clrBackR, clrBackG, clrBackB, 
clrBackA);          
+       if (!gdImageTrueColor(src) && clrBack>=gdImageColorsTotal(src)) {
+               return NULL;
+       }
 
        while (dAngle >= 360.0) {
                dAngle -= 360.0;
@@ -2805,7 +2818,6 @@
        if (pMidImg == NULL) {
                return NULL;
        }
-
 
        rotatedImg = gdImageRotate45 (pMidImg, dAngle, clrBack);
        gdImageDestroy(pMidImg);



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to