From 0bb885a441b19a7b2534c05ecb33481bbd301488 Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sun, 12 Apr 2009 14:45:05 +0000 Subject: [PATCH] MFB: Fixed bug #47946 (ImageConvolution overwrites background) --- ext/gd/libgd/gd.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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) { -- 2.40.0