diff --git a/src/pixie/images.nim b/src/pixie/images.nim index 61886e8..4b97cc9 100644 --- a/src/pixie/images.nim +++ b/src/pixie/images.nim @@ -347,19 +347,17 @@ proc shadow*( result.fill(color) result.draw(shadow, blendMode = bmMask) -proc applyOpacity*(image: Image, opacity: float32): Image = +proc applyOpacity*(image: Image, opacity: float32) = ## Multiplies alpha of the image by opacity. - result = newImage(image.width, image.height) let op = (255 * opacity).uint32 for i in 0 ..< image.data.len: var rgba = image.data[i] rgba.a = ((rgba.a.uint32 * op) div 255).clamp(0, 255).uint8 image.data[i] = rgba -proc sharpOpacity*(image: Image): Image = +proc sharpOpacity*(image: Image) = ## Sharpens the opacity to extreme. ## A = 0 stays 0. Anything else turns into 255. - result = newImage(image.width, image.height) for i in 0 ..< image.data.len: var rgba = image.data[i] if rgba.a == 0: diff --git a/tests/benchmark_images.nim b/tests/benchmark_images.nim index 03a789c..4d6c390 100644 --- a/tests/benchmark_images.nim +++ b/tests/benchmark_images.nim @@ -66,7 +66,7 @@ timeIt "applyOpacityOriginal": timeIt "applyOpacity": var a = newImage(2560, 1440) for i in 0 ..< iterations: - a = a.applyOpacity(0.5) + a.applyOpacity(0.5) timeIt "sharpOpacityOriginal": var a = newImage(2560, 1440) @@ -76,4 +76,4 @@ timeIt "sharpOpacityOriginal": timeIt "sharpOpacity": var a = newImage(2560, 1440) for i in 0 ..< iterations: - a = a.sharpOpacity() + a.sharpOpacity()