summaryrefslogtreecommitdiff
path: root/lib/extensions/palette_to_text.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/extensions/palette_to_text.py')
-rw-r--r--lib/extensions/palette_to_text.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/extensions/palette_to_text.py b/lib/extensions/palette_to_text.py
new file mode 100644
index 00000000..0944c649
--- /dev/null
+++ b/lib/extensions/palette_to_text.py
@@ -0,0 +1,50 @@
+# Authors: see git history
+#
+# Copyright (c) 2022 Authors
+# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
+
+import os
+
+import inkex
+
+from ..i18n import _
+from ..threads.palette import ThreadPalette
+from .base import InkstitchExtension
+
+
+class PaletteToText(InkstitchExtension):
+ # Generate a custom color palette in object related order
+ def __init__(self, *args, **kwargs):
+ InkstitchExtension.__init__(self, *args, **kwargs)
+ self.arg_parser.add_argument("-f", "--file", type=str, default=None, dest="file")
+ self.arg_parser.add_argument("-o", "--notebook:options", type=str, default=None, dest="page_options")
+ self.arg_parser.add_argument("-i", "--info", type=str, default=None, dest="page_help")
+
+ def effect(self):
+ palette_file = self.options.file
+ if not os.path.isfile(palette_file):
+ inkex.errormsg(_("File does not exist."))
+ return
+
+ thread_palette = ThreadPalette(palette_file)
+ current_layer = self.svg.get_current_layer()
+
+ x = 0
+ y = 0
+ pos = 0
+ for color in thread_palette:
+ line = "%s %s" % (color.name, color.number)
+ element = inkex.TextElement()
+ element.text = line
+ element.style = "fill:%s;font-size:4px;" % color.to_hex_str()
+ element.set('x', x)
+ element.set('y', str(y))
+ current_layer.insert(pos, element)
+
+ y = float(y) + 5
+ pos += 1
+
+
+if __name__ == '__main__':
+ e = PaletteToText()
+ e.affect()