From e6b1b0c8887e3c61047eb05cd762644cba96edea Mon Sep 17 00:00:00 2001 From: chflame Date: Wed, 27 Mar 2024 19:28:39 +0800 Subject: [PATCH] commit CropBoxResolve node --- image/corp_box_resolve_node.png | Bin 0 -> 82713 bytes py/crop_box_resolve.py | 44 ++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 image/corp_box_resolve_node.png create mode 100644 py/crop_box_resolve.py diff --git a/image/corp_box_resolve_node.png b/image/corp_box_resolve_node.png new file mode 100644 index 0000000000000000000000000000000000000000..718beee136c6cbea12f75326ec1fdbcd25d4ca5d GIT binary patch literal 82713 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 T$ecF;{%!oiY(t{a?qmN4{iv=O literal 0 HcmV?d00001 diff --git a/py/crop_box_resolve.py b/py/crop_box_resolve.py new file mode 100644 index 0000000..bcc4911 --- /dev/null +++ b/py/crop_box_resolve.py @@ -0,0 +1,44 @@ +from .imagefunc import * + +NODE_NAME = 'CropBoxResolve' + +class CropBoxResolve: + + def __init__(self): + pass + + @classmethod + def INPUT_TYPES(self): + + return { + "required": { + "crop_box": ("BOX",), + }, + "optional": { + } + } + + RETURN_TYPES = ("INT", "INT", "INT", "INT") + RETURN_NAMES = ("x", "y", "width", "height") + FUNCTION = 'crop_box_resolve' + CATEGORY = '😺dzNodes/LayerUtility' + + def crop_box_resolve(self, crop_box + ): + + (x1, y1, x2, y2) = crop_box + x1 = int(x1) + y1 = int(y1) + x2 = int(x2) + y2 = int(y2) + + return (x1, y1, x2 - x1, y2 - y1,) + + +NODE_CLASS_MAPPINGS = { + "LayerUtility: CropBoxResolve": CropBoxResolve +} + +NODE_DISPLAY_NAME_MAPPINGS = { + "LayerUtility: CropBoxResolve": "LayerUtility: CropBoxResolve" +} \ No newline at end of file