diff options
| author | Ilia Alshanetsky <iliaa@php.net> | 2009-04-12 14:43:21 +0000 |
|---|---|---|
| committer | Ilia Alshanetsky <iliaa@php.net> | 2009-04-12 14:43:21 +0000 |
| commit | c593790b62f165f976d57cce6b3bb45b1b07c09b (patch) | |
| tree | 69b2c25c59e81303f59c75ec1f01ae6827b7efe7 | |
| parent | 90a2d1979486b2e7fa14be9c3210b9d321c668f8 (diff) | |
| download | php-git-c593790b62f165f976d57cce6b3bb45b1b07c09b.tar.gz | |
Fixed bug #47946 (ImageConvolution overwrites background)
# original patch by jcolby at acsol dot net
| -rw-r--r-- | ext/gd/libgd/gd.c | 6 |
1 files changed, 5 insertions, 1 deletions
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) { |
