Python 作 ▸ 2018-01-24 23:36 svgwriteでSVGのドット絵描いてみる #Python#svgwrite Python 習作です。 svgwrite 使ってみました pixels2svg.pyimport sys import svgwrite args = sys.argv if len(args) < 4: print('invalid number of arguments') sys.exit(1) w = int(args[1]) h = int(args[2]) pixels = args[3] pixels_len = len(pixels) if pixels_len != w * h: print('invalid pixels length ->', pixels_len) sys.exit(1) pixel_size = 4 dwg = svgwrite.Drawing('output.svg', size=(w * pixel_size, h * pixel_size)) for y in range(h): start = y * w row = pixels[start:start+w] for x, p in enumerate(row): if int(p) <= 0: fill = 'rgb(0, 0, 0)' else: fill = 'rgb(255, 255, 255)' dwg.add(dwg.rect(insert=(x * pixel_size, y * pixel_size), size=(pixel_size, pixel_size), fill=fill)) dwg.save()これは↓のように幅・高さ・ゼロイチのドットを指定してやると、ドット絵のSVGが出てきます。隣接してるドットを同じrectでまとめるとか、一切してないです。 動かし方python pixels2svg.py 16 16 0000000000000000000001000000010000001111111110000001111111110000001000000011100000100000000110000111111111101100101110110111111000110100101110000001010010111100000010000010000000000110110110000000011011110000000011111110000000010100000110000000100000001000できあがりはこういう↓ できあがり なんでよりによってなんでこんなものを