「Python Imaging Library Modules」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==Python Imaging Library Modules== [Python Imaging Library][Python] ===Image Module=== *http://www.pythonware.com/library/pil/handbook/image.htm ====new 関数====…」) |
|||
1行目: | 1行目: | ||
==Python Imaging Library Modules== | ==Python Imaging Library Modules== | ||
− | [Python Imaging Library][Python] | + | [[Python Imaging Library][Python]] |
===Image Module=== | ===Image Module=== | ||
9行目: | 9行目: | ||
Image.new(mode, size, color) | Image.new(mode, size, color) | ||
=====例===== | =====例===== | ||
− | + | >>> import Image | |
− | + | >>> im = Image.new('RGB', (100,100), (255,0,0)) | |
− | + | >>> im.show() | |
[[File:1032_pil_img01.jpg]] | [[File:1032_pil_img01.jpg]] | ||
28行目: | 28行目: | ||
*options に弧の色を指定。 | *options に弧の色を指定。 | ||
− | + | >>> import Image, ImageDraw | |
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> draw.arc((10,10,80,80), 0, 270, fill=64) | |
− | + | >>> im.save(r'c:\work\img\pil_arc01.jpg') | |
[[File:1029_pil_arc01.jpg]] | [[File:1029_pil_arc01.jpg]] | ||
41行目: | 41行目: | ||
*outline はアウトライン色、fill は塗りつぶす色を指定 | *outline はアウトライン色、fill は塗りつぶす色を指定 | ||
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> draw.chord((10,10,80,80), 0, 270, outline=(0,255,0), fill=(255,0,0)) | |
− | + | >>> im.save(r'c:\work\img\pil_chord01.jpg') | |
[[File:1030_pil_chord01.jpg]] | [[File:1030_pil_chord01.jpg]] | ||
52行目: | 52行目: | ||
*outline はアウトライン色、fill は塗りつぶす色を指定 | *outline はアウトライン色、fill は塗りつぶす色を指定 | ||
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> draw.ellipse((10,10,80,40),outline=(0,255,0), fill=(255,0,0)) | |
− | + | >>> im.save(r'c:\work\img\pil_chord01.jpg') | |
[[File:1031_pil_ellipse01.jpg]] | [[File:1031_pil_ellipse01.jpg]] | ||
66行目: | 66行目: | ||
*ver 1.1.5 から、 width オプションでピクセル単位で、線幅を指定できる。 | *ver 1.1.5 から、 width オプションでピクセル単位で、線幅を指定できる。 | ||
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> draw.line(((0,0),(50,50),(80,20)), fill='rgb(255,0,0)') | |
− | + | >>> im.save(r'c:\work\img\pil_line01.jpg') | |
[[File:1033_pil_line01.jpg]] | [[File:1033_pil_line01.jpg]] | ||
77行目: | 77行目: | ||
*outline はアウトライン色、fill は塗りつぶす色を指定 | *outline はアウトライン色、fill は塗りつぶす色を指定 | ||
− | + | >>> import Image, ImageDraw | |
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> draw.pieslice((10,10,80,80), 0, 270, fill=64) | |
− | + | >>> im.save(r'c:\work\img\pil_slice01.jpg') | |
[[File:1037_pil_slice01.jpg]] | [[File:1037_pil_slice01.jpg]] | ||
88行目: | 88行目: | ||
*点を描画する。 | *点を描画する。 | ||
*2 タプル [(x,y),...] または値のリスト、[x,y, ...] で位置を指定。 | *2 タプル [(x,y),...] または値のリスト、[x,y, ...] で位置を指定。 | ||
− | + | >>> import Image, ImageDraw | |
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> points = [(x, 100.0-(x / 4.0) **2) for x in range(100)] | |
− | + | >>> draw.point(points, fill=64) | |
− | + | >>> im.save(r'c:\work\img\pil_point01.jpg') | |
[[File:1034_pil_point01.jpg]] | [[File:1034_pil_point01.jpg]] | ||
103行目: | 103行目: | ||
*2 タプル [(x,y),...] または値のリスト、[x,y, ...] で位置を指定。 | *2 タプル [(x,y),...] または値のリスト、[x,y, ...] で位置を指定。 | ||
− | + | >>> import Image, ImageDraw | |
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> points = [(20,40), (25,60), (40,80), (60,75), (80,95), (85,20), (50,40)] | |
− | + | >>> draw.polygon(points, fill=64, outline='rgb(0,255,0)') | |
− | + | >>> im.save(r'c:\work\img\pil_poli01.jpg') | |
[[File:1035_pil_poli01.jpg]] | [[File:1035_pil_poli01.jpg]] | ||
116行目: | 116行目: | ||
*boxは、シーケンスオブジェクトで、2タプル[ (x, y), (x, y) ] または値 [ x, y, x, y ]を指定する。 | *boxは、シーケンスオブジェクトで、2タプル[ (x, y), (x, y) ] または値 [ x, y, x, y ]を指定する。 | ||
− | + | >>> import Image, ImageDraw | |
− | + | >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') | |
− | + | >>> draw = ImageDraw.Draw(im) | |
− | + | >>> draw.rectangle(((20,20),(80,80)), fill=64, outline='rgb(0,255,0)') | |
− | + | >>> im.save(r'c:\work\img\pil_rectangle01.jpg') | |
[[File:1036_pil_rectangle01.jpg]] | [[File:1036_pil_rectangle01.jpg]] | ||
142行目: | 142行目: | ||
====textsize==== | ====textsize==== | ||
− | draw.textsize(string, options) = | + | draw.textsize(string, options) => (width, height) |
*与えられた文字列のサイズをピクセル単位で取得する。 | *与えられた文字列のサイズをピクセル単位で取得する。 | ||
2020年2月15日 (土) 08:05時点における版
目次
Python Imaging Library Modules
[[Python Imaging Library][Python]]
Image Module
new 関数
- モードとサイズを指定してイメージを作成する
Image.new(mode, size) Image.new(mode, size, color)
例
>>> import Image >>> im = Image.new('RGB', (100,100), (255,0,0)) >>> im.show()
open 関数
- イメージを開く
- ファイル名ではなく、read、 seek および tell を持ちバイナリモードで開かれたファイル、string オブジェクトから Image の生成もできる
Image.open(infile) Image.open(infile, mode)
ImageDraw Module
Draw 関数
- イメージに描画するためのインスタンスを取得する
arc
draw.arc(xy, start, end, options)
- xy で与えられたボックスに、start から、end までの角度の弧を描く。
- options に弧の色を指定。
>>> import Image, ImageDraw >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> draw.arc((10,10,80,80), 0, 270, fill=64) >>> im.save(r'c:\work\img\pil_arc01.jpg')
chord
draw.chord(xy, start, end, options)
- arcと同様だが、エンドポイントが直線で接続されている。
- outline はアウトライン色、fill は塗りつぶす色を指定
>>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> draw.chord((10,10,80,80), 0, 270, outline=(0,255,0), fill=(255,0,0)) >>> im.save(r'c:\work\img\pil_chord01.jpg')
ellipse
draw.ellipse(xy, options)
- 楕円を指定されたボックス内に描画する。
- outline はアウトライン色、fill は塗りつぶす色を指定
>>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> draw.ellipse((10,10,80,40),outline=(0,255,0), fill=(255,0,0)) >>> im.save(r'c:\work\img\pil_chord01.jpg')
line
draw.line(xy, options)
- xy の リスト間に線を引く
- xy のリストには、シーケンスオブジェクトを指定できる。
- 2 タプル [(x,y),...] または値のリスト、[x,y, ...] 。
- fillオプションで線色を指定できる。
- ver 1.1.5 から、 width オプションでピクセル単位で、線幅を指定できる。
>>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> draw.line(((0,0),(50,50),(80,20)), fill='rgb(255,0,0)') >>> im.save(r'c:\work\img\pil_line01.jpg')
pieslice
draw.pieslice(xy, start, end, options)
- arc と同様だが、エンドポイントと、中心に直線が引かれる。
- outline はアウトライン色、fill は塗りつぶす色を指定
>>> import Image, ImageDraw >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> draw.pieslice((10,10,80,80), 0, 270, fill=64) >>> im.save(r'c:\work\img\pil_slice01.jpg')
point
draw.point(xy, options)
- 点を描画する。
- 2 タプル [(x,y),...] または値のリスト、[x,y, ...] で位置を指定。
>>> import Image, ImageDraw >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> points = [(x, 100.0-(x / 4.0) **2) for x in range(100)] >>> draw.point(points, fill=64) >>> im.save(r'c:\work\img\pil_point01.jpg')
poligon
draw.polygon(xy, options)
- 多角形を描画する。
- アウトラインを与えられた位置を直線でつないで作成する
- 2 タプル [(x,y),...] または値のリスト、[x,y, ...] で位置を指定。
>>> import Image, ImageDraw >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> points = [(20,40), (25,60), (40,80), (60,75), (80,95), (85,20), (50,40)] >>> draw.polygon(points, fill=64, outline='rgb(0,255,0)') >>> im.save(r'c:\work\img\pil_poli01.jpg')
rectangle
draw.rectangle(box, options)
- 長方形を描画する
- boxは、シーケンスオブジェクトで、2タプル[ (x, y), (x, y) ] または値 [ x, y, x, y ]を指定する。
>>> import Image, ImageDraw >>> im = Image.new('RGB', (100,100), 'rgb(128,128,128)') >>> draw = ImageDraw.Draw(im) >>> draw.rectangle(((20,20),(80,80)), fill=64, outline='rgb(0,255,0)') >>> im.save(r'c:\work\img\pil_rectangle01.jpg')
text
- 文字列を指定位置に描画する。
- font オプションは、使用するフォントを特定したい場合に利用。
- fill オプションは、テキストの色を指定
フォントをMS明朝に指定して、日本語を書き出す
# -*- coding: utf-8 -*- import Image, ImageDraw, ImageFont im = Image.new('RGB', (300,300), 'rgb(255,255,255)') draw = ImageDraw.Draw(im) font = ImageFont.truetype('C:\WINDOWS\Fonts\MSMINCHO.TTC', 24, encoding="utf-8") draw.text((10,10), u'日本語OK?', font=font,fill='rgb(255,0,0)') im.save(r'c:\work\img\pil_text01.jpg')
textsize
draw.textsize(string, options) => (width, height)
- 与えられた文字列のサイズをピクセル単位で取得する。
# -*- coding: utf-8 -*- import Image, ImageDraw, ImageFont im = Image.new('RGB', (300,100), 'rgb(255,255,255)') draw = ImageDraw.Draw(im) font = ImageFont.truetype('C:\WINDOWS\Fonts\MSMINCHO.TTC', 24, encoding="utf-8") msg = u'日本語OK?' (w, h) = draw.textsize(msg, font=font) top = 10 draw.text((top,10), msg, font=font, fill='rgb(255,0,0)') top += (h + 2) msg = 'w:%d h:%d' % (w, h) draw.text((10,top), msg, font=font, fill='rgb(255,0,0)') im.save(r'c:\work\img\pil_text02.jpg')
© 2006 矢木浩人