From 6b843f94043174ea70901259ec0f85a2d8c5a9b5 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg Date: Tue, 7 Jun 2022 23:50:04 -0500 Subject: [PATCH] mask resize --- bindings/bindings.nim | 1 + src/pixie/images.nim | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/bindings/bindings.nim b/bindings/bindings.nim index 82dbc0e..83e0758 100644 --- a/bindings/bindings.nim +++ b/bindings/bindings.nim @@ -156,6 +156,7 @@ exportRefObject Mask: applyOpacity(Mask, float32) invert(Mask) blur(Mask, float32, uint8) + resize(Mask, int, int) draw(Mask, Mask, Mat3, BlendMode) draw(Mask, Image, Mat3, BlendMode) fillText(Mask, Font, string, Mat3, Vec2, HorizontalAlignment, VerticalAlignment) diff --git a/src/pixie/images.nim b/src/pixie/images.nim index 540bf46..a99c62d 100644 --- a/src/pixie/images.nim +++ b/src/pixie/images.nim @@ -1155,6 +1155,21 @@ proc resize*(srcImage: Image, width, height: int): Image {.raises: [PixieError]. OverwriteBlend ) +proc resize*(srcMask: Mask, width, height: int): Mask {.raises: [PixieError].} = + ## Resize a mask to a given height and width. + if width == srcMask.width and height == srcMask.height: + result = srcMask.copy() + else: + result = newMask(width, height) + result.draw( + srcMask, + scale(vec2( + width.float32 / srcMask.width.float32, + height.float32 / srcMask.height.float32 + )), + OverwriteBlend + ) + proc shadow*( image: Image, offset: Vec2, spread, blur: float32, color: SomeColor ): Image {.raises: [PixieError].} =