这个 ImageDraw
模块提供简单的二维图形 Image
物体。您可以使用此模块创建新图像、对现有图像进行注释或润色,以及动态生成图形以供Web使用。
有关PIL的更高级绘图库,请参见 aggdraw module .
from PIL import Image, ImageDraw
im = Image.open("hopper.jpg")
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
# write to stdout
im.save(sys.stdout, "PNG")
图形界面使用与PIL本身相同的坐标系,左上角有(0,0)。在图像边界之外绘制的任何像素都将被丢弃。
要指定颜色,可以使用数字或元组,就像使用 PIL.Image.new()
或 PIL.Image.Image.putpixel()
. 对于“1”、“l”和“i”图像,使用整数。对于“rgb”图像,使用包含整数值的3元组。对于“f”图像,使用整数或浮点值。
对于调色板图像(模式“p”),使用整数作为颜色索引。在1.1.4及更高版本中,还可以使用RGB 3元组或颜色名称(见下文)。绘图层将自动分配颜色索引,只要不使用超过256种颜色绘制。
from PIL import Image, ImageDraw, ImageFont
# get an image
base = Image.open('Pillow/Tests/images/hopper.png').convert('RGBA')
# make a blank image for the text, initialized to transparent text color
txt = Image.new('RGBA', base.size, (255,255,255,0))
# get a font
fnt = ImageFont.truetype('Pillow/Tests/fonts/FreeMono.ttf', 40)
# get a drawing context
d = ImageDraw.Draw(txt)
# draw text, half opacity
d.text((10,10), "Hello", font=fnt, fill=(255,255,255,128))
# draw text, full opacity
d.text((10,60), "World", font=fnt, fill=(255,255,255,255))
out = Image.alpha_composite(base, txt)
out.show()
PIL.ImageDraw.
Draw
(im, mode=None)¶创建可用于绘制给定图像的对象。
请注意,图像将在适当的位置进行修改。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
getfont
()¶获取当前默认字体。
返回: | 图像字体。 |
---|
PIL.ImageDraw.ImageDraw.
arc
(xy, start, end, fill=None, width=0)¶在给定的边界框内,在起始角和结束角之间绘制圆弧(圆轮廓的一部分)。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
bitmap
(xy, bitmap, fill=None)¶使用非零部分的当前填充颜色在给定位置绘制位图(遮罩)。位图应该是有效的透明蒙版(模式“1”)或蒙版(模式“l”或“rgba”)。
这相当于 image.paste(xy, color, bitmap)
.
要将像素数据粘贴到图像中,请使用 paste()
方法。
PIL.ImageDraw.ImageDraw.
chord
(xy, start, end, fill=None, outline=None, width=0)¶等同于 arc()
,但用直线连接端点。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
ellipse
(xy, fill=None, outline=None, width=0)¶在给定的边界框内绘制椭圆。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
line
(xy, fill=None, width=0, joint=None)¶在中的坐标之间绘制一条线 xy 名单。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
pieslice
(xy, start, end, fill=None, outline=None, width=0)¶与圆弧相同,但也在端点和边界框中心之间绘制直线。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
point
(xy, fill=None)¶在给定坐标处绘制点(单个像素)。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
polygon
(xy, fill=None, outline=None)¶绘制多边形。
多边形轮廓由给定坐标之间的直线以及最后一个坐标和第一个坐标之间的直线组成。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
rectangle
(xy, fill=None, outline=None, width=0)¶绘制矩形。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
shape
(shape, fill=None, outline=None)¶警告
这种方法是实验性的。
画一个形状。
PIL.ImageDraw.ImageDraw.
text
(xy, text, fill=None, font=None, anchor=None, spacing=0, align="left", direction=None, features=None, language=None)¶在给定位置绘制字符串。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
multiline_text
(xy, text, fill=None, font=None, anchor=None, spacing=0, align="left", direction=None, features=None, language=None)¶在给定位置绘制字符串。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
textsize
(text, font=None, spacing=4, direction=None, features=None, language=None)¶返回给定字符串的大小(像素)。
参数: |
|
---|
PIL.ImageDraw.ImageDraw.
multiline_textsize
(text, font=None, spacing=4, direction=None, features=None, language=None)¶返回给定字符串的大小(像素)。
参数: |
|
---|
PIL.ImageDraw.
getdraw
(im=None, hints=None)¶警告
这种方法是实验性的。
基于WCK接口的PIL图像更高级的二维绘图接口。
参数: |
|
---|---|
返回: | (绘图上下文、绘图资源工厂)元组。 |
PIL.ImageDraw.
floodfill
(image, xy, value, border=None, thresh=0)¶警告
这种方法是实验性的。
用给定颜色填充有界区域。
参数: |
|
---|