SVG
.svg()はSVGを重ねるレイヤーを追加し、描画時にラスタライズします。どの出力サイズでも鮮明にしたいアイコン、ロゴ、ベクター装飾に使ってください。
シグネチャ
canvas.svg(
path,
position,
width=None,
height=None,
opacity=1.0,
rotation=0.0,
align=Align.TOP_LEFT,
effects=None,
blend_mode=None,
)
パラメーター
| パラメーター | 型 | 既定値 | 説明 |
|---|---|---|---|
path |
str |
必須 | SVG文書のローカルパスかURLです。 |
position |
tuple |
必須 | (x, y)位置。整数(ピクセル)か百分率文字列("50%")です。 |
width |
int \| None |
None |
ラスター出力の幅(ピクセル)。heightを省くと縦横比を維持します。 |
height |
int \| None |
None |
ラスター出力の高さ(ピクセル)。widthを省くと縦横比を維持します。 |
opacity |
float |
1.0 |
0.0から1.0までの不透明度です。 |
rotation |
float |
0.0 |
回転角(度)です。 |
align |
str \| Align \| tuple |
Align.TOP_LEFT |
レイヤーのどの点をpositionに合わせるか。Alignを参照してください。 |
effects |
list \| None |
[] |
画像と同じStroke、Shadow、Glow、Filterです。 |
blend_mode |
str \| BlendMode \| None |
None |
下のレイヤーと合成するブレンドモードです。 |
固定サイズのビットマップを拡大するのではなく、指定サイズでSVGをラスタライズするため、大きく描いてもロゴの鮮明さを保てます。
例
隅にロゴを置く
回転と不透明度を指定した装飾
canvas.svg(
path="assets/images/spark.svg",
position=("70%", "20%"),
width=44,
align=("center", "middle"),
rotation=20,
opacity=0.8,
)
影付きのリモートSVG
from quickthumb import Shadow
canvas.svg(
path="https://example.com/badge.svg",
position=("50%", "85%"),
width=200,
align=("center", "middle"),
effects=[Shadow(offset_x=0, offset_y=8, color="#000000", blur_radius=16)],
)
検証規則
pathとpositionは必須です。positionは2要素のタプルです。百分率文字列は-?N%形式です。opacityは0.0から1.0の範囲です。quickthumb[svg]がない状態で描画するとRenderingErrorになります。