Wednesday, August 05, 2020

JupyterLabとipycanvasで図形に影をつける

ipycanvasで図形に影をつける事ができます。影をつけるには、以下の属性でパラメータを設定します。
shadow_color : 影の色
shadow_offset_x : 影の水平方向オフセット
shadow_offset_y : 影の垂直方向オフセット
shadow_blur = ぼかしの大きさ

サンプルコード

以下のサンプルコードは、円の図形と影を描画しています。
from ipycanvas import Canvas
from math import pi

canvas = Canvas(width=200, height=100)

canvas.shadow_color = '#c0c0c0'
canvas.shadow_offset_x = 5
canvas.shadow_offset_y = 5
canvas.shadow_blur = 5

canvas.fill_style = '#ccddff'
canvas.fill_arc(100, 50, 40, 0, 2 * pi)

canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

Wednesday, July 29, 2020

JupyterLabとipycanvasでテキストのアライメントを設定する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
テキストのアライメントを設定するには、text_align属性を使用します。
'start', 'end', 'left, 'right', 'center'が指定できます。

サンプルコード

以下のサンプルコードでは、アライメントを右寄せに設定して文字列を描画しています。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.fill_style = '#F25E5E'

canvas.font = '32px sanserif'
canvas.text_align = 'right'
canvas.fill_text("テストです", 200, 70)

canvas.stroke_rect(0, 0, 200, 100)
canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

Tuesday, July 28, 2020

JupyterLabとipycanvasでテキストを描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
テキストを描画する場合は、以下のメソッドを使用します。

・ stroke_text(text, x, y, max_width=None)
指定した文字列textをx, yの座標(テキスト左下位置)に中抜き描画します。max_widthを指定すると超えた場合、指定した幅に圧縮されます。

・ fill_text(text, x, y, max_width=None)
指定した文字列textをx, yの座標(テキスト左下位置)に塗りつぶし描画します。max_widthを指定すると超えた場合、指定した幅に圧縮されます。

font属性でフォントの大きさと種類を指定できます。デフォルトは'12px serif'です。

サンプルコード

以下のサンプルコードで文字列を描画します。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.stroke_style = '#7799dd'
canvas.fill_style = '#F25E5E'

canvas.font = '32px sanserif'
canvas.stroke_text("テストです", 10, 50)
canvas.fill_text("テストです", 10, 90)

canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

Sunday, July 26, 2020

JupyterLabとipycanvasで二次曲線を描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
二次曲線を描画する場合は、以下のメソッドを使用します。

・begin_path()
パスの作成を開始します。

・move_to(x, y)
ペンを指定座標に移動します。

・quadratic_curve_to(cp1x, cp1y, x, y)
二次曲線はパスでの最後の位置から新たな座標(最後の2つの引数x, y)まで、制御点を使って描画します。

・stroke()
パスの設定で線を描画します

サンプルコード

以下のサンプルコードで二次曲線を描画します。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.stroke_style = '#7799dd'

canvas.begin_path()
canvas.move_to(10,50)

# 二次曲線
# 制御点
cp1x = 100
cp1y = 5
canvas.quadratic_curve_to(cp1x,cp1y, 190,50)

canvas.stroke()
canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

JupyterLabとipycanvasでベジェ曲線を描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
ベジェ曲線を描画する場合は、以下のメソッドを使用します。

・begin_path()
パスの作成を開始します。

・move_to(x, y)
ペンを指定座標に移動します。

・bezier_curve_to(cp1x, cp1y, cp2x, cp2y, x, y)
ベジェ曲線はパスでの最後の位置から新たな座標(最後の2つの引数x, y)まで、2つの制御点を使って描画します。

・stroke()
パスの設定で線を描画します

サンプルコード

以下のサンプルコードでベジェ曲線を描画します。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.stroke_style = '#7799dd'

canvas.begin_path()
canvas.move_to(10,50)

# ベジェ曲線
# 制御点1
cp1x = 50
cp1y = 25
# 制御点2
cp2x = 150
cp2y = 90
canvas.bezier_curve_to(cp1x,cp1y, cp2x,cp2y, 190,50)

canvas.stroke()
canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

Friday, July 24, 2020

JupyterLabとipycanvasでポリゴンを描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
ポリゴンを描画する場合は、以下のメソッドを使用します。

・begin_path()
パスの作成を開始します。

・move_to(x, y)
ペンを指定座標に移動します。

・line_to(x, y)
現在の位置から指定座標に線を引きます。

・ fill(rule='nonzero')
現在のパスの設定で塗りつぶします。

サンプルコード

以下のサンプルコードでポリゴンを描画します。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.fill_style = '#7799dd'

canvas.begin_path()
canvas.move_to(100,10)
canvas.line_to(20,90)
canvas.line_to(180,70)
canvas.fill()

canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

JupyterLabとipycanvasで直線を描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
直線を描画する場合は、以下のメソッドを使用します。

・begin_path()
パスの作成を開始します。

・move_to(x, y)
ペンを指定座標に移動します。

・line_to(x, y)
現在の位置から指定座標に線を引きます。

・stroke()
パスの設定で線を描画します

〇サンプルコード
以下のサンプルコードで直線を描画します。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.stroke_style = '#7799dd'

canvas.begin_path()
canvas.move_to(0,100)
canvas.line_to(200,0)
canvas.stroke()

canvas
〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

JupyterLabとipycanvasで円・円弧を描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
円・円弧を描画する場合は、以下のメソッドを使用します。

・fill_arc(x, y, radius, start_angle, end_angle, anticlockwise=False)
塗りつぶした円・円弧を描画します。

・stroke_arc(x, y, radius, start_angle, end_angle, anticlockwise=False)
円・円弧を線で描画します。

サンプルコード

以下のサンプルコードで円・円弧を描画します。
from ipycanvas import Canvas
from math import pi

canvas = Canvas(width=200, height=100)

canvas.fill_style = 'darkblue'
canvas.stroke_style = '#7799dd'

canvas.fill_arc(50, 50, 40, pi*60/180, pi*240/180, anticlockwise=True)
canvas.stroke_arc(150, 50, 40, 0, 2 * pi)

canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。 JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

JupyterLabとipycanvasで四角形を描画する

ipycanvasでcanvasを使用して様々な図形を描画する事ができます。
四角形を描画する場合は、以下のメソッドを使用します。

・fill_rect(x, y, width, height=None)
塗りつぶした四角形を描画します。

・stroke_rect(x, y, width, height=None)
四角形を線で描画します。

サンプルコード

以下のサンプルコードで四角形を描画します。
from ipycanvas import Canvas

canvas = Canvas(width=200, height=100)

canvas.fill_style = '#335588'
canvas.stroke_style = 'green'

canvas.fill_rect(10, 10, 80, 80)
canvas.stroke_rect(100, 10, 80, 80)

canvas

〇サンプルコードの実行結果

関連情報

・ipycanvasのインストールは、以下を参照してください。
JupyterLabにipycanvasをインストールして、ノートブックにcanvasを利用して図形を描画する

Thursday, June 13, 2019

Pillowを使用して画像を円形に切り取る

Pillowを使用して画像を円形に切り取るには、以下のサンプルコードのようにマスクを使用します。

circle-cutting.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 画像を円形に切り取る
img1 = Image.open("/tmp/sf.jpg")
img2 = Image.new("RGB", img1.size, (0xbb, 0xdd, 0xff))
mask = Image.new("1", img1.size, 1)
draw = ImageDraw.Draw(mask)
draw.ellipse((0,0,img1.size[0]-1,img1.size[1]-1), fill=0)
del draw
img3 = Image.composite(img2, img1, mask);

img3.save("/tmp/circle-cutting.png")

〇元画像(sf.jpg)


〇出力画像(circle-cutting.png)


〇関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する

Monday, June 03, 2019

Pillowを使用して角丸四角を描画する

Pillowを使用して角丸四角を描画するには、以下のサンプルコードのようにrectangleメソッドとpiesliceメソッドを実行します。

pillow-roundrectangle.py
# coding=UTF-8
from PIL import Image
from PIL import ImageDraw

# 角丸四角を描画する
img1 = Image.new("RGB", (100,100), "#ffffff")
draw = ImageDraw.Draw(img1)
rx = 10
ry = 10
fillcolor = "#bbddff"
draw.rectangle((0,ry)+(img1.size[0]-1,img1.size[1]-1-ry), fill=fillcolor)
draw.rectangle((rx,0)+(img1.size[0]-1-rx,img1.size[1]-1), fill=fillcolor)
draw.pieslice((0,0)+(rx*2,ry*2), 180, 270, fill=fillcolor)
draw.pieslice((0,img1.size[1]-1-ry*2)+(rx*2,img1.size[1]-1), 90, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,img1.size[1]-1-ry*2)+
(img1.size[0]-1,img1.size[1]-1), 0, 180, fill=fillcolor)
draw.pieslice((img1.size[0]-1-rx*2,0)+
(img1.size[0]-1,ry*2), 270, 360, fill=fillcolor)
del draw

img1.save("/tmp/roundrectangle.png")

出力画像(roundrectangle.png)


○関連情報
Dockerでpython3.7とPillowをインストールしたコンテナ(Alpine3.9ベース)を作成する