File > Export PNG Image (Full page at 96 dpi)
-Unfortunately, Inkscape cannot export TGA images,
-therefore it is necessary to convert the exported
+Unfortunately, Inkscape cannot export TGA images.
+Therefore it is necessary to convert the exported
images afterwards, for example with the GIMP or
ImageMagick (convert image.png image.tga).
I recommend to open the SVG files in a text editor for
insight. Most images consist of simple path elements.
SVG filters are applied to these paths to add blurs
-and glows. Shared filters and gradients are explained
-and stored in dedicated files per directory
-
- common.filters
- common.gradients
-
-The filters should not require editing. A detailed
-explanation of SVG filter elements is available at
+and glows. The filters should not require editing.
+More information about SVG filters is available at
<https://www.w3.org/TR/SVG/filters.html>
-Filters may be turned off with
+In Inkscape, filters can be turned off with
View > Display mode > No Filters
FONT_SIZE = 16
FONT_COLOR = ImageColor.getrgb("#ffffff")
FONT_FILE = io.BytesIO(base64.b64decode(b"""
-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
+d09GRgABAAAAAAUUAAwAAAAAB4gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABkAAAAEMAAABg
+JRUnJmNtYXAAAAHsAAAAMwAAADwAqwBwY3Z0IAAAAiAAAAAEAAAABAACAChnYXNwAAAFDAAAAAgAAAAI
+//8AA2dseWYAAAJMAAAB+QAAA+a7QJukaGVhZAAAARwAAAA2AAAANg3su5RoaGVhAAABVAAAABsAAAAk
+AGIAGGhtdHgAAAHUAAAAGAAAACwAaAAqbG9jYQAAAiQAAAAoAAAAKAi0CaRtYXhwAAABcAAAAB4AAAAg
+AFgAT25hbWUAAARIAAAAqwAAATwTBjdRcG9zdAAABPQAAAAWAAAAIP/5AAUAAQAAAAEAAMM3GptfDzz1
+AAsAQAAAAADXUDESAAAAANdcTRUAAgAAACAAMAAAAAgAAgAAAAAAAHjaY2BkYGBw+P8BSKowgIACUAQV
+MAMARxECeQB42mNgZGBgEGaQY2BmAAEmIGYEizkw6IEEAAhTAKgAAHjaLcWBBYBAFADQ96ujgJsgh4M4
+hAZomuZppIYKgAo9eAY1TgmLhvF/1st00gQgAKB8XFaH7bllu4wAVUMRLwuVBoIAeNpjUGFgYgABFSBm
+YeAAYlyQAwAP7gCTeNpjYGBgAmJmIBYBkoxgmoVBA0izAWlGoKwlQ9r//0C+AUPi////L/9fAxQFAwCT
+agkVAAACACgAAAAoACgAKABNAF8AfACdALMAzQDuAQABMAFRAXIBiwGjAbwB3QHzeNptU42OmkAQHj5m
+AAkiAiv2Ynv2aMrFXlpSQsyPL63P01foGzRJZ27hpM3FldXNzverBH0RlXSikGL6fg3ox+UWM/3+eY3k
+1+UWQj/SNbRjseNbHAV/LrfAzodxcN0wtijyLDud8JUUhRXvSC+KtiFHdB7PQ+PitmuG89i1caPfXcxS
+ipQBCujiFKk8ia4IOAK7cBWuKKBEkfaKlHgU145tnKQRB6tjuHp51uPgjW1LNOgdo/B8sRscyxaoUYnu
++0qQgSUX5LycrIn83HifNgDeAWWpauCEWRzbuL1lzbyWBUI26VPK0VRyjqxmTtIHabg4/KNzc2dzrRtm
+ot1B9RlHgZozDYcIC/xqylFdLcPkqEQVVnOSpXyOOFzpdGSxzqxzgoMOjueRDyWKZ06f5JGXfa21rY+v
+PJ2vbNnaOO3M1hzzxDgvH4l/KncGJPbE+y4MV+EM3DAN0RsJoNLwIZdXI+sIOfCG8EWzawyhPw9jb0X1
+jWv7rleUtleUSqe30gTWmtYcgeUxQnFH6ClWl2QlmYjOZ8iaX1UCZZ/JgzD20L4WnJ6xUQqnVHHbszhY
+ZXDTff6fwVxav2awNWXsVen9rI9wAL3ryvxMHJ1ZVErLZm8/4aBGYfOyScF1Ckz/j0/Ue0+zRqV1iWxQ
+oCi+CSPlA/0FDP9QAgAAAHjaVcwzQwQAAAXgL5tLWOKa3XqNWUvG2cafj8fp+WFITo+u3iHMU+ddhs3X
+ebdxq3XeY9p2nfe2dfrMOqnz/jZ/zLjHOh/3KuZGUElQTlTKojNB1T99JiVty75rQWFFCW8d/qIt6zbd
+C8rJi0pLNd1FAQGbTR1RUJBxbMOGDzlBbwqiSoI+pCUlpaXkrUvLCduQUfQuIerD51/nTVTKhpqgnLSN
+//9vR8ImfAB42mNgZgCD/98YWIAUIwMaAAAu5AH+AAAAAAAB//8AAg==
"""))
POSITIONS = (
collageDraw = ImageDraw.Draw(collage)
# Draw collage
-for postition, rgbString in zip(POSITIONS, colors):
+for position, rgbString in zip(POSITIONS, colors):
- x = int(postition[0] * iconW)
- y = int(postition[1] * iconH)
+ x = int(position[0] * iconW)
+ y = int(position[1] * iconH)
# Draw colorized icon
addColor = ImageColor.getrgb("#" + rgbString + "00")