From: Ilia Alshanetsky Date: Sun, 12 Apr 2009 14:45:05 +0000 (+0000) Subject: MFB: Fixed bug #47946 (ImageConvolution overwrites background) X-Git-Tag: php-5.4.0alpha1~191^2~3930 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0bb885a441b19a7b2534c05ecb33481bbd301488;p=php MFB: Fixed bug #47946 (ImageConvolution overwrites background) --- diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index 70f4e31c78..7bc25e710f 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -3863,7 +3863,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; @@ -3873,6 +3873,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) {