summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/editor/icons/svgs_2_pngs.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/tools/editor/icons/svgs_2_pngs.py b/tools/editor/icons/svgs_2_pngs.py
new file mode 100644
index 0000000000..8f218cb452
--- /dev/null
+++ b/tools/editor/icons/svgs_2_pngs.py
@@ -0,0 +1,66 @@
+# -*- coding: utf-8 -*-
+
+# Basic exporter for svg icons (requires Inkscape)
+
+import os.path
+from os import listdir
+from os.path import isfile, join
+import subprocess
+
+SVGS_PATH = 'source/'
+OUT_DIR = 'out/'
+DPI = 90
+
+
+def export_all(svgs_path=SVGS_PATH, out_dir=OUT_DIR, dpi=DPI):
+ if not os.path.isdir(out_dir):
+ os.makedirs(out_dir)
+
+ file_names = [f for f in listdir(svgs_path) if isfile(join(svgs_path, f))]
+
+ for file_name in file_names:
+ # name without extensions
+ name_only = file_name.replace('.svg', '')
+
+ icon_from_name = name_only
+ out_icon_names = [name_only] # export to a png with the same file name
+ rotations = []
+ transforms = []
+
+ # special cases
+ if special_icons.has_key(name_only):
+ special_icon = special_icons[name_only]
+ if type(special_icon) is dict:
+ if special_icon.has_key('output_names'):
+ out_icon_names += special_icon['output_names']
+
+ svg_file_path = '%s%s.svg' % (svgs_path, icon_from_name)
+
+ for index, out_icon_name in enumerate(out_icon_names):
+ subprocess.call(
+ 'inkscape -z -f {input} -d {dpi} -e{output}'.format(
+ input=svg_file_path,
+ dpi=dpi,
+ output='%s%s.png' % (out_dir, out_icon_name)
+ ), shell=True)
+
+
+# special cases for icons that will be exported to multiple target pngs or that require transforms.
+special_icons = {
+ 'icon_add_track': dict( output_names=['icon_add'] ),
+ 'icon_new': dict( output_names=['icon_file'] ),
+ 'icon_animation_tree_player': dict( output_names=['icon_animation_tree'] ),
+ 'icon_tool_rotate': dict( output_names=['icon_reload'] ),
+ 'icon_multi_edit': dict( output_names=['icon_multi_node_edit'] ),
+ 'icon_folder': dict( output_names=['icon_load'] ),
+ 'icon_file_list': dict( output_names=['icon_enum'] ),
+ 'icon_collision_2d': dict( output_names=['icon_collision_polygon_2d', 'icon_polygon_2d'] ),
+ 'icon_class_list': dict( output_names=['icon_filesystem'] ),
+ 'icon_color_ramp': dict( output_names=['icon_graph_color_ramp'] ),
+ 'icon_translation': dict( output_names=['icon_p_hash_translation'] ),
+ 'icon_shader': dict( output_names=['icon_shader_material', 'icon_material_shader'] ),
+ 'icon_canvas_item_shader_graph': dict( output_names=['icon_material_shader_graph'] ),
+
+}
+
+export_all()