目次

このページ

pgmagickクックブック

GraphicsMagickのPythonバインディングであるpgmagickの使用例を紹介します。

背景色が赤色のJPEG画像を作成する

from pgmagick.api import Image

img = Image((300, 200), 'red')
img.write('bg-red.jpg')
_images/bg-red.jpg

透明なPNG画像を作成する

from pgmagick.api import Image

img = Image((300, 200), 'transparent')
img.write('transparent.png')
_images/transparent.png

背景色が白から黒でグラデーションとなる画像を作成する

from pgmagick.api import Image

img = Image((300, 200), 'gradient:#ffffff-#000000')
img.write('gradient.png')
_images/gradient.png

文字を描く

from pgmagick.api import Image

img = Image((300, 200))
img.annotate('Hello World')
img.write('helloworld.png')
_images/helloworld.png

斜め45度に傾いた文字を描く

from pgmagick.api import Image

img = Image((300, 200))
img.annotate('Hello World', angle=45)
img.write('helloworld45.png')
_images/helloworld45.png

日本語を描く

日本語フォントを設定して、日本語をannotate()に渡します。

# coding: utf-8
from pgmagick.api import Image

img = Image((300, 200))
img.font("/usr/share/fonts/truetype/ttf-japanese-gothic.ttf")
img.annotate('Hello World')
img.annotate('ようこそpgmagickへ!!')
img.write('japanese-text.png')
_images/japanese-text.png

画像を縮小する

from pgmagick.api import Image

img = Image('gradient.png')
img.scale(0.5)
img.write('halfscale.png')
_images/halfscale.png
from pgmagick.api import Image

img = Image('gradient.png')
img.scale((150, 100), 'lanczos')
img.write('halfscale2.png')
_images/halfscale2.png

画像を縮小する(JPEG)

from pgmagick import Image, Blob

img = Image(Blob(open('lena_std.jpg').read()), Geometry(200, 200))
img.scale('200x200')
img.write('lena_scale.jpg')
_images/lena_std.jpg _images/lena_scale.jpg

サイズを取得する

from pgmagick.api import Image

img = Image((300, 200))
print img.columns(), img.rows()
print img.width, img.height
$ python size.py
300 200
300 200

画像を半透明にする

from pgmagick.api import Image

img = Image('lena.jpg')
img.opacity(80)
img.write('lena_opacity80.jpg')
_images/lena.jpg _images/lena_opacity80.png

シャープマスクをかける

from pgmagick.api import Image

img = Image('lena.jpg')
img.sharpen(1)
img.write('lena_sharpen1.jpg')
_images/lena.jpg _images/lena_sharpen1.jpg

画像をぼかす

from pgmagick.api import Image

img = Image('lena.jpg')
img.blur(10, 5)
img.write('lena_blur.jpg')
_images/lena.jpg _images/lena_blur.jpg

エッジ抽出

from pgmagick.api import Image

img = Image('lena.jpg')
img.edge(2)
img.write('lena_edge.jpg')
_images/lena.jpg _images/lena_edge.jpg

EXIF情報を削除する

import sys
from pgmagick import Image, Blob

blob = Blob()
img = Image('exif-sample.jpg')
img.profile("*", blob)
img.write('exif-strip.jpg')
_images/exif-sample.jpg _images/exif-strip.jpg