- Python Pillow教程
- 蟒蛇Pillow - 主页
- Python Pillow - 概述
- Python Pillow - 环境设置
- Python Pillow - 使用图像模块
- Python Pillow - 处理图像
- Python Pillow - 创建缩略图
- Python Pillow - 合并图像
- Python Pillow - 模糊图像
- Python Pillow - 裁剪图像
- Python Pillow - 翻转和旋转图像
- Python Pillow - 调整图像大小
- Python Pillow - 创建水印
- Python Pillow - 向图像添加滤镜
- Python Pillow - 图像上的颜色
- Python Pillow - ImageDraw 模块
- Python Pillow - 图像序列
- Python Pillow - 在图像上写入文本
- Python Pillow - 使用 Numpy 进行机器学习
- Python Pillow 有用资源
- Python Pillow - 快速指南
- Python Pillow - 有用的资源
- Python Pillow - 讨论
Python Pillow - ImageDraw 模块
“ImageDraw”模块为图像对象提供简单的 2D 图形支持。通常,我们使用此模块来创建新图像、注释或修饰现有图像以及动态生成图形以供 Web 使用。
图形命令支持形状绘制和文本注释。
图像可以被认为是像素(图片元素)的二维数组。像素是支持的最小颜色点。
ImageDraw 使用的二维坐标系的原点位于图像的左上角。
我们使用的Pillow配色方案是 RGB。颜色 RGB 表示和支持由模块ImageColor提供。
位图、OpenType 或 TrueType 是文本注释可接受的字体。
大多数绘图命令可能需要一个边界框参数,该参数指定图像上要应用该命令的区域。
坐标序列可以表示为 [ (x0, y0), (x1, y1),…(xn, yn)]。
对于某些绘图命令,我们需要角度值。
例子
以下 python 示例在给定图像上画一条线 -
#Import required libraries import sys from PIL import Image, ImageDraw #Create Image object im = Image.open("images/logo.jpg") #Draw line draw = ImageDraw.Draw(im) draw.line((0, 0) + im.size, fill=128) draw.line((0, im.size[1], im.size[0], 0), fill=128) #Show image im.show()
输出
如果将上述程序保存为Example.py并执行,它会在图像上画一条线并使用标准PNG显示实用程序显示它,如下所示 -
帆布
ImageDraw 是图像的 Pillow 可绘制表面(即画布)。
ImageDraw.Draw(img) 返回 Image 参数 img 的可绘制画布表示。画布的背景是“img”图像。
例子
以下 python 示例在给定图像上绘制文本 -
#Import required modules from Pillow package from PIL import Image, ImageDraw, ImageFont # get an image base = Image.open('images/boy.jpg').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('E:/PythonPillow/Fonts/Pacifico.ttf', 40) # get a drawing context d = ImageDraw.Draw(txt) # draw text, half opacity d.text((14,14), "Tutorials", font=fnt, fill=(255,255,255,128)) # draw text, full opacity d.text((14,60), "Point", font=fnt, fill=(255,255,255,255)) out = Image.alpha_composite(base, txt) #Show image out.show()
输出
使用“ImageDraw”模块绘制形状
ImageDraw 模块允许我们首先使用要使用的图像创建绘图对象,然后应用它来创建不同的形状。我们可以使用“ImageDraw”模块绘制的一些常见形状如下 -
线
以下是使用 python Pillow 画线的语法 -
draw.line(xy, fill=None, width=0)
line ()方法从边界框 xy 和画布的左上角到右下角绘制一条线。使用颜色填充来填充线条。参数 fill 和 width 的默认值分别为 None 和 0,这两个参数是可选的。
例子
from PIL import Image, ImageDraw img = Image.new('RGB', (500, 300), (125, 125, 125)) draw = ImageDraw.Draw(img) draw.line((200, 100, 300, 200), fill=(0, 0, 0), width=10) img.show()
输出
蚀
以下是使用 python Pillow 绘制椭圆的语法 -
draw.ellipse(xy, fill=None, outline=None)
ellipse ()方法在绘制时绘制由边界框 xy 包围的椭圆。使用颜色填充和颜色轮廓的周边来填充形状。参数 fill 和 width 的默认值 None 是可选的。
例子
from PIL import Image, ImageDraw img = Image.new('RGB', (500, 300), (125, 125, 125)) draw = ImageDraw.Draw(img) draw.ellipse((200, 125, 300, 200), fill=(255, 0, 0), outline=(0, 0, 0)) img.show()
输出
长方形
以下是使用 python Pillow 绘制矩形的语法 -
draw.rectangle(xy, fill=None, outline=None)
矩形()方法在绘制时绘制给定边界框xy的矩形。使用颜色填充和颜色轮廓的周边来填充形状。参数 fill 和 width 的默认值 None 是可选的。
from PIL import Image, ImageDraw img = Image.new('RGB', (500, 300), (125, 125, 125)) draw = ImageDraw.Draw(img) draw.rectangle( (200, 125, 300, 200), fill=(255, 0, 0), outline=(0, 0, 0)) img.show()
输出
多边形
以下是使用 python Pillow 绘制矩形的语法 -
draw.polygon(seq, fill=None, outline=None)
Polygon ()方法绘制一个多边形,用直线连接绘图上的坐标序列位置 seq。seq 中的第一个和最后一个坐标也通过直线连接。使用颜色填充和颜色轮廓的周边来填充形状。参数 fill 和 Outline 是可选的,默认值为 None。
from PIL import Image, ImageDraw img = Image.new('RGB', (500, 300), (125, 125, 125)) draw = ImageDraw.Draw(img) draw.polygon( ((200, 200), (300, 100), (250, 50)), fill=(255, 0, 0), outline=(0, 0, 0)) img.show()