From 51984f4aa83362b9d122241692511cd50b868c57 Mon Sep 17 00:00:00 2001 From: homm Date: Sun, 12 Oct 2014 14:14:56 +0400 Subject: [PATCH] fix radius == 0 --- libImaging/UnsharpMask.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/libImaging/UnsharpMask.c b/libImaging/UnsharpMask.c index 8c75b600d..1b29fbd3c 100644 --- a/libImaging/UnsharpMask.c +++ b/libImaging/UnsharpMask.c @@ -64,11 +64,15 @@ gblur(Imaging im, Imaging imOut, float radius, float effectiveScale, int channel maskData = malloc(window * sizeof(float)); for (pix = 0; pix < window; pix++) { offset = pix - effectiveRadius; - /* http://en.wikipedia.org/wiki/Gaussian_blur - "1 / sqrt(2 * pi * dev)" is constant and will be eliminated by - normalization. */ - maskData[pix] = pow(2.718281828459, - -offset * offset / (2 * radius * radius)); + if (radius) { + /* http://en.wikipedia.org/wiki/Gaussian_blur + "1 / sqrt(2 * pi * dev)" is constant and will be eliminated + by normalization. */ + maskData[pix] = pow(2.718281828459, + -offset * offset / (2 * radius * radius)); + } else { + maskData[pix] = 1; + } } for (pix = 0; pix < window; pix++) {