processingで描いたものをpngに保存する

描いたものを保存したい場合は save 関数を使用する。下記の例であれば、描いたものが 300×300 サイズのPNG画像としてソースコードと同じフォルダーに test.png として保存される。

size(300, 300)

background(255, 255, 255)
noStroke()
fill(188, 0, 45)
ellipse(150, 150, 100, 100)

save("test.png") 

背景が透過されたPNGを保存したい場合、PGraphics を使う。PGraphics は 画面には見えない仮想のキャンバス。 createGraphics 関数で生成されるので、適当な変数に代入する。(下記の例であれば pg) 以降 pg に対して fillellipse を記述すると、仮想キャンバスに描画される。

注意点としては、background を入れないこと。

size(50, 50) # ここには何も描かれないのでサイズはどうでもいい

pg = createGraphics(300, 300)

pg.beginDraw()
pg.noStroke()
pg.fill(188, 0, 45)
pg.ellipse(150, 150, 100, 100)
pg.endDraw()

pg.save("test.png") 

ちなみに、描いたものを消したい場合は clear 関数を使用する。また、背景を半透明にすることもできる。

# 仮想キャンバスをクリア(消す)
pg.clear()

# 背景を白い半透明にする
pg.background(255, 255, 255, 128) # 4番目が透明度 0:透明、255:不透明

コメントする