summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaalleen <36401965+kaalleen@users.noreply.github.com>2025-06-29 06:56:15 +0200
committerGitHub <noreply@github.com>2025-06-29 06:56:15 +0200
commit81e48c151b5d55703049163c441538c041e31ff5 (patch)
treef0dacdc3a1725839ec92d3fddf5d1ec6b6b9189a
parentc7102e6cece6551f7d5a74f6e3350967fab1741d (diff)
parent454b5ee1a00e9d4b96f5f057a8611da68a6cc796 (diff)
Merge pull request #3825 from not-my-profile/support-bundled-inkex
Revert "add icc color workaround (#3687)" and use 1.4.x inkex
-rw-r--r--lib/threads/color.py9
-rw-r--r--requirements.txt6
-rw-r--r--tests/test_threads_color.py16
3 files changed, 22 insertions, 9 deletions
diff --git a/lib/threads/color.py b/lib/threads/color.py
index 26da78d5..699f4448 100644
--- a/lib/threads/color.py
+++ b/lib/threads/color.py
@@ -5,7 +5,7 @@
import colorsys
-from inkex import Color, ColorCMS
+from inkex import Color
from pyembroidery.EmbThread import EmbThread
@@ -33,12 +33,7 @@ class ThreadColor(object):
self.rgb = (color.get_red(), color.get_green(), color.get_blue())
return
elif isinstance(color, str):
- # This will catch icc colors which cannot be parsed as rgb colors directly
- if isinstance(Color(color), ColorCMS):
- # The icc color has a hex color prepended.
- # The easiest way to receive a color value is therefore to just use the hex color from the front.
- color = color.split()[0]
- self.rgb = tuple(Color(color).to('rgb').get_values(False))
+ self.rgb = tuple(Color(color).to('rgb'))
elif isinstance(color, (list, tuple)):
self.rgb = tuple(color)
else:
diff --git a/requirements.txt b/requirements.txt
index ece0a36a..ae7a5de0 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,8 +3,10 @@
# but the .gitignore file should be updated to ignore the build directory.
./pyembroidery
-# get up to date inkex version (March 1, 2024)
-inkex @ git+https://gitlab.com/inkscape/extensions.git@1792934a09046fdef8aab20d05aad9c47f825bf5
+# For macOS and Windows our installer bundles the version specified here
+# but some Linux distros package Ink/Stitch as depending on the inkex that's bundled with Inkscape.
+# So at least for releases we should use a tagged version here such as EXTENSIONS_AT_INKSCAPE_$version.
+inkex @ git+https://gitlab.com/inkscape/extensions.git@EXTENSIONS_AT_INKSCAPE_1.4.1
# for linux user it may be tricky to install wxPython from sources
# prebuilt packages: https://wxpython.org/pages/downloads/index.html
diff --git a/tests/test_threads_color.py b/tests/test_threads_color.py
new file mode 100644
index 00000000..a5442359
--- /dev/null
+++ b/tests/test_threads_color.py
@@ -0,0 +1,16 @@
+from lib.threads.color import ThreadColor
+
+
+def test_init_color_from_string_rgb():
+ color = ThreadColor("rgb(170, 187, 204)")
+ assert color.rgb == (170, 187, 204)
+
+
+def test_init_color_from_string_hex():
+ color = ThreadColor("#AABBCC")
+ assert color.rgb == (170, 187, 204)
+
+
+def test_init_color_from_string_hex_icc():
+ color = ThreadColor("#AABBCC icc-color(Some-Profile, 0.1, 0.2, 0.3, 0.4)")
+ assert color.rgb == (170, 187, 204)