Sunday, April 05, 2009

pycairoで放射グラデーションを描画する

pycairoで放射グラデーションを描画するには、以下のコードを実行します。

# coding=UTF-8
import cairo

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)
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, 0x11/float(0xff), 0x33/float(0xff), 0x77/float(0xff), 1)
rg.add_color_stop_rgba(0.75, 0xbb/float(0xff), 0xdd/float(0xff), 0xff/float(0xff), 1)
rg.add_color_stop_rgba(1.00, 0xff/float(0xff), 0xa5/float(0xff), 0x00/float(0xff), 1)
ctx.rectangle(0, 0, 200, 200)
ctx.set_source(rg)
ctx.fill()
surface.write_to_png('sample1011a.png')

出力画像(sample1011a.png)
pycairoで描画した放射グラデーション

動作環境
Python2.6.1, GTK+2.16.0, pycairo1.4.12-2

関連項目
pycairoのまとめ

pycairoをWindowsにインストール

pycairoでグラデーションを描画する

pycairoを使用して半透明放射グラデーションで画像を切り取る

No comments: