From b81f7b8b0253917d3322c08d884a5a86a3b7e0fe Mon Sep 17 00:00:00 2001 From: Helena Date: Mon, 4 Dec 2023 16:21:53 +0000 Subject: [PATCH] Add palette options to convert (#1364) --- .../graphicsmagick/convert.xml | 44 ++++++++++++++++-- .../test-data/donald-colors-2.jpg | Bin 0 -> 12955 bytes .../test-data/donald-palette.jpg | Bin 0 -> 10585 bytes 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 tools/image_processing/graphicsmagick/test-data/donald-colors-2.jpg create mode 100644 tools/image_processing/graphicsmagick/test-data/donald-palette.jpg diff --git a/tools/image_processing/graphicsmagick/convert.xml b/tools/image_processing/graphicsmagick/convert.xml index 4becd238dc..d1a7989ef5 100644 --- a/tools/image_processing/graphicsmagick/convert.xml +++ b/tools/image_processing/graphicsmagick/convert.xml @@ -1,4 +1,4 @@ - + with GraphicsMagick macros.xml @@ -14,9 +14,18 @@ #set $trans_options = '' #end if - gm convert -resize ${resize}%x $trans_options input.${input.ext} temp.${output_format} + gm convert + -resize ${resize}%x + $trans_options + #if $palette.palette_select == "automatic" + -type Palette + #else if $palette.palette_select == "manual" + -colors '${palette.palette}' + #end if + 'input.${input.ext}' + 'temp.${output_format}' && - mv temp.${output_format} '${output}' + mv 'temp.${output_format}' '${output}' ]]> @@ -28,6 +37,18 @@ + + + + + + + + + + + + @@ -62,6 +83,23 @@ + + + + + + + + + + + + + + + + + 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%0D-9o>mtqd!l@&4ZZE*EQc|L3|@ yinn4BkEH8WG3z{b?!Mu=&&&NDV|CYVHq8`nvvb14uCkNRds2rb22q^1EB^~)X3}f` literal 0 HcmV?d00001 diff --git a/tools/image_processing/graphicsmagick/test-data/donald-palette.jpg b/tools/image_processing/graphicsmagick/test-data/donald-palette.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e8f97f48200882f0f3f3405404bd4eef6078e79 GIT binary patch literal 10585 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 B2r&Qv literal 0 HcmV?d00001