From 6ec7ec0fbbe3fe8e7d84ef5821ec9c013ce0b72f Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Fri, 26 Feb 2021 23:37:42 -0600 Subject: [PATCH] f --- src/pixie/images.nim | 2 +- src/pixie/internal.nim | 11 +++++------ src/pixie/masks.nim | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/pixie/images.nim b/src/pixie/images.nim index f2d9f14..540853a 100644 --- a/src/pixie/images.nim +++ b/src/pixie/images.nim @@ -348,7 +348,7 @@ proc blur*(image: Image, radius: float32, outOfBounds = ColorRGBX()) = ) # Blur in the X direction. - var blurX = newImage(image.width, image.height) + let blurX = newImage(image.width, image.height) for y in 0 ..< image.height: for x in 0 ..< image.width: var values: array[4, uint32] diff --git a/src/pixie/internal.nim b/src/pixie/internal.nim index 895fcfa..de4f67f 100644 --- a/src/pixie/internal.nim +++ b/src/pixie/internal.nim @@ -11,15 +11,14 @@ proc gaussianLookup*(radius: int): seq[uint32] = var floats = newSeq[float32](result.len) total = 0.0 - for xb in -radius .. radius: + for step in -radius .. radius: let s = radius.float32 / 2.2 # 2.2 matches Figma. - x = xb.float32 - a = 1 / sqrt(2 * PI * s^2) * exp(-1 * x^2 / (2 * s^2)) - floats[xb + radius] = a + a = 1 / sqrt(2 * PI * s^2) * exp(-1 * step.float32^2 / (2 * s^2)) + floats[step + radius] = a total += a - for xb in -radius .. radius: - floats[xb + radius] = floats[xb + radius] / total + for step in -radius .. radius: + floats[step + radius] = floats[step + radius] / total for i, f in floats: result[i] = round(f * 255 * 1024).uint32 diff --git a/src/pixie/masks.nim b/src/pixie/masks.nim index ec8ac7f..00507e8 100644 --- a/src/pixie/masks.nim +++ b/src/pixie/masks.nim @@ -163,7 +163,7 @@ proc blur*(mask: Mask, radius: float32, outOfBounds: uint8 = 0) = let lookup = gaussianLookup(radius) # Blur in the X direction. - var blurX = newMask(mask.width, mask.height) + let blurX = newMask(mask.width, mask.height) for y in 0 ..< mask.height: for x in 0 ..< mask.width: var value: uint32