Wednesday, April 15, 2009

pycairoで画像にモザイクをかける

pycairoで画像にモザイクをかけるには、以下のコードを実行します。

# coding=UTF-8
import cairo

img = cairo.ImageSurface.create_from_png("sf.png")
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32,
img.get_width()/8, img.get_height()/8)
ctx = cairo.Context(surface)
ctx.scale(0.125, 0.125)
ctx.set_source_surface(img, 0, 0)
ctx.paint()
surface2 = cairo.ImageSurface(cairo.FORMAT_ARGB32,
img.get_width(), img.get_height())
ctx2 = cairo.Context(surface2)
ctx2.scale(8, 8)
psp = cairo.SurfacePattern(surface)
psp.set_filter(cairo.FILTER_NEAREST)
ctx2.rectangle(0, 0, 200, 200)
ctx2.set_source(psp)
ctx2.fill()
surface2.write_to_png('sample1021a.png')

元画像(sf.png)


出力画像(sample1021a.png)


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

関連項目
pycairoのまとめ

pycairoをWindowsにインストール

No comments: