程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上
Pillow中有一个ImageDraw模块,该模块的Draw函数会返回一个ImageDraw对象,通过ImageDraw对象的arc、line、rectangle、ellipse、polygon等方法,可以在图像上绘制出圆弧、线条、矩形、椭圆、多边形等形状,也可以通过该对象的text方法在图像上添加文字。
import random
from PIL import Image, ImageDraw, ImageFont
#生成随机颜色
def random_color():
red = random.randint(0, 255)
green = random.randint(0, 255)
blue = random.randint(0, 255)
return red, green, blue
width, height = 600, 500
# 创建图像
image = Image.new(mode='RGB', size=(width, height), color=(255, 255, 255))
# 创建ImageDraw对象
draw = ImageDraw.Draw(image)
#写文字
draw.text((300, 100), 'Hello Python', fill=random_color())
# 圆弧
draw.arc((0, 0,300,300) , start=0, end=300, fill='red',width=3)
# line方法画直线
draw.line((0, 250, 250, 0), fill=(0, 0, 255), width=2)
draw.line((0, 150, 150, 0), fill=(0, 0, 255), width=2)
xy = width // 2 - 60, height // 2 - 60, width // 2 + 60, height // 2 + 60
xy1 = width // 2 - 30, height // 2 - 30, width // 2 + 30, height // 2 + 30
xy2 = width // 2 - 90, height // 2 -90, width // 2 +90, height // 2 + 90
# rectangle方法画矩形
draw.rectangle(xy, outline=random_color(), width=2)
draw.rectangle(xy1, outline=random_color(), width=2)
draw.rectangle(xy2, outline=random_color(), width=2)
#多边形
draw.polygon([(300, 300), (100, 100), (200, 0),(250,0),(350,0),(400,0)], outline='red')
# ellipse方法画椭圆
w, h = 220, 190
shape = [(40, 40), (160,160)]
draw.ellipse(shape, fill ="#99FF99", outline ="red")
# 显示图像
image.show()
# 保存图像
image.save('image.png')
效果
很强!
系列文章索引
Python(一)关键字、内置函数
Python(二)基本数据类型
Python(三)数据类型转换
Python(四)字符串
Python(五)数字
Python(六) 列表
Python(七) 条件控制、循环语句
Python(八) 字典
Python(九) 集合
Python (十) 元组