From: Ilia Alshanetsky Date: Sun, 12 Apr 2009 14:43:21 +0000 (+0000) Subject: Fixed bug #47946 (ImageConvolution overwrites background) X-Git-Tag: php-5.3.0RC2~173 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c593790b62f165f976d57cce6b3bb45b1b07c09b;p=php Fixed bug #47946 (ImageConvolution overwrites background) # original patch by jcolby at acsol dot net --- diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index 7760fecf20..8971dcc3b8 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -3870,7 +3870,7 @@ int gdImageConvolution(gdImagePtr src, float filter[3][3], float filter_div, flo int x, y, i, j, new_a; float new_r, new_g, new_b; int new_pxl, pxl=0; - gdImagePtr srcback; + gdImagePtr srcback, srctrans; typedef int (*FuncPtr)(gdImagePtr, int, int); FuncPtr f; @@ -3880,6 +3880,10 @@ int gdImageConvolution(gdImagePtr src, float filter[3][3], float filter_div, flo /* We need the orinal image with each safe neoghb. pixel */ srcback = gdImageCreateTrueColor (src->sx, src->sy); + srcback->saveAlphaFlag = 1; + srctrans = gdImageColorAllocateAlpha(srcback, 0, 0, 0, 127); + gdImageFill(srcback, 0, 0, srctrans); + gdImageCopy(srcback, src,0,0,0,0,src->sx,src->sy); if (srcback==NULL) {