青海波のベクター画像を作成する
日本の伝統的な文様である青海波のベクター画像を作成します。
ドットの集合である普通の画像(ラスター画像)と異なり、ベクター画像は線や円といったオブジェクトの集合として記述されており、拡大縮小してもギザギザになったりせず画像の質が変わらない特徴があります。
ベクターファイルの生成にはライブラリsvgwriteを用います。このライブラリを使うことでベクター画像の一種であるsvgファイルが生成できます。
環境
- windows10 home
- Anaconda 3/ jupyter notebook 5.6.0
- Python 3.7.0
- svgwrite 1.4
コード
import svgwrite dwg = svgwrite.Drawing('seigaiha.svg', profile='tiny') def seigaiha(x, y): for i in range(6, 1, -2): dwg.add(dwg.circle(center=(x, y),r=i,fill='indianred')) dwg.add(dwg.circle(center=(x, y),r=i-1,fill='wheat')) for k in range(10): for j in range(10): seigaiha(j*12, k*6) for j in range(10): seigaiha(j*12+6, (k*6+3)) dwg.save()
実行結果
生成した'seigaiha.svg'をベクター画像描画フリーソフトInkscapeで開きます(ブラウザでも開けます)。青海波文様が生成できました。
ベクター画像なので拡大してもエッジがギザギザになりません。
以下のサイトを参考にさせていただきました
pythonfix BETA > svgwrite code examples
svgwrite module