When I moved the site from Jekyll to WordPress, I was asked to create a site icon by WordPress. I was trying to play around with the letter from “t” from my screen name “tecoholic” in a couple of Vector editors using different fonts, handrawn symbols …etc., and finally landed on what I know best. Write a Python script for it. So here it is, my blog icon and the generator. It is just a stacking of “T”s but somehoe looks like the corner of ancient Chinese houses.
#!/usr/bin/env python """ A script to generate SVG icon for the personal blog. """ import svgwrite width = 256 height = 256 mtop = mbottom = mright = mleft = 256/8 dwg = svgwrite.Drawing(filename="blog_icon.svg", size=(height, width)) def draw_pattern(width, color): xpos = 256/8 + mleft ypos = 256/8 increment = 256*2/8 vlines = dwg.add(dwg.g(id="vlines", stroke=color, stroke_width=width, stroke_linecap="round")) hlines = dwg.add(dwg.g(id="vlines", stroke=color, stroke_width=width, stroke_linecap="round")) while (xpos < 256*7/8): vlines.add(dwg.line(start=(xpos,ypos), end=(xpos, 256 - mbottom))) hlines.add(dwg.line(start=(mleft, ypos), end=(xpos+mright, ypos))) xpos += increment ypos += increment draw_pattern(20, "black") draw_pattern(8, "white") dwg.save(pretty=True)
That creates the SVG, then it is just using imagemagick
to create png files of all required sizes:
#!/usr/bin/env bash python blog_icon_generator.py convert -background none blog_icon.svg blogo_256.png convert -background none -resize 512x512 blog_icon.svg blogo_512.png convert -background none -resize 128x128 blog_icon.svg blogo_128.png convert -background none -resize 64x64 blog_icon.svg blogo_64.png convert -background none -resize 32x32 blog_icon.svg blogo_32.png