]> granicus.if.org Git - php/commitdiff
- Fix #23808
authorPierre Joye <pajoye@php.net>
Wed, 2 Jul 2003 11:23:56 +0000 (11:23 +0000)
committerPierre Joye <pajoye@php.net>
Wed, 2 Jul 2003 11:23:56 +0000 (11:23 +0000)
ext/gd/libgd/gd.c

index 010662564f077473f38553e46aa00f39d3551864..769cca388edafe4d216247d9ee936176354d9c73 100644 (file)
@@ -2075,9 +2075,12 @@ void gdImageCopyMerge (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int s
                        } else {
                                dc = gdImageGetPixel(dst, tox, toy);
 
-                               ncR = (int)(gdImageRed (src, c) * (pct / 100.0f) + ((100 - pct) / 100.0f));
-                               ncG = (int)(gdImageGreen (src, c) * (pct / 100.0f) + ((100 - pct) / 100.0f));
-                               ncB = (int)(gdImageBlue (src, c) * (pct / 100.0f) + ((100 - pct) / 100.0f));
+                                ncR = (int)gdImageRed (src, c) * (pct / 100.0) 
+                                        + gdImageRed (dst, dc) * ((100 - pct) / 100.0);
+                                ncG = (int)gdImageGreen (src, c) * (pct / 100.0) 
+                                        + (int)gdImageGreen (dst, dc) * ((100 - pct) / 100.0);
+                                ncB = (int)gdImageBlue (src, c) * (pct / 100.0) 
+                                        + gdImageBlue (dst, dc) * ((100 - pct) / 100.0);
 
                                /* Find a reasonable color */
                                nc = gdImageColorResolve (dst, ncR, ncG, ncB);