pycairoを使用して半透明放射グラデーションで画像を切り取るには、以下のコードを実行します。
# coding=UTF-8
import cairo
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)
img = cairo.ImageSurface.create_from_png("sf.png")
ctx = cairo.Context(surface)
x1 = x2 = 100
r1 = 0
y1 = y2 = 100
r2 = 100
rg = cairo.RadialGradient(x1, y1, r1, x2, y2, r2)
rg.add_color_stop_rgba(0.00, 1, 1, 1, 1)
rg.add_color_stop_rgba(0.75, 1, 1, 1, 0.9)
rg.add_color_stop_rgba(1.00, 1, 1, 1, 0)
psp = cairo.SurfacePattern(img)
ctx.set_source(psp)
ctx.mask(rg)
surface.write_to_png('sample1025a.png')
元画像(sf.png)
出力画像(sample1025a.png)
動作環境
Python2.6.1, GTK+2.16.0, pycairo1.4.12-2
関連項目
pycairoのまとめ
pycairoをWindowsにインストール
pycairoで放射グラデーションを描画する
No comments:
Post a Comment