安装Pillow 模块
pip install pillow
Image 模块
PIL最重要的类是 Image class, 你可以通过多种方法创建这个类的实例;你可以从文件加载图像,或者处理其他图像, 或者从 scratch 创建。
Image 类属性
mode :图片模式
size:图片大小
width:图片长度
height:图片宽度
创建 1个张图片
Image.new(mode,size,color)
mode: 颜色模式
size:(长,宽) 图片大小
color:背景颜色
from PIL import Image #导入Image 类
img = Image.new('RGB',(120,30),'yellow')
img.show() #显示图片
将图片信息保存到本地
img.save(位置,后缀)
from PIL import Image
img = Image.new(mode='RGB',size=(120,30),color='yellow')
f = open('xxx.png','wb')
img.save(f,'png') #将图片保存到某一位置,图片名称为xxx
f.close()
注意:文件名相同会被覆盖,所以永远只会生成1张图片
将图片信息保存在内存 BytesIO
from io import BytesIO # 导入模块
stream = BytesIO() # 创建1个IO对象
img.save(stream,'PNG') # 把图片保存到内存
return HttpResponse(stream.getvalue()) # getvalue() 获取图片信息
ImageDraw 模块
imagedraw模块提供的图像对象的简单的二维图形。你可以使用这个模块来创建新的图像,注释或修整现有的图像
from PIL import Image, ImageDraw
im = Image.open("lena.pgm")
draw = ImageDraw.Draw(im) #创建画笔
draw.line((0, 0) + im.size, fill=128) #画线 填充颜色
draw.line((0, im.size[1], im.size[0], 0), fill=128) #画第二根线
del draw
# write to stdout
im.save(sys.stdout, "PNG")
PIL.ImageDraw.Draw.line(xy, fill=None, width=0)
在XY列表中的坐标之间画一条直线。
参数:
XY:或二元像[序列(x,y),(x,y),…]值或数值,像[ x,y,x,y,…]。
填充颜色用于线条。
width:宽度–
线宽,以像素为单位。注意线连接处理的不好,所以宽折线看不好。
PIL.ImageDraw.Draw.point(xy, fill=None)
在给定坐标下绘制点(单个像素)。 注意只是1个像素画点
参数:
XY:或二元像[序列(x,y),(x,y),…]值或数值,像[ x,y,x,y,…]。
fill:填充-颜色用于点
给所有像素画点:
for x in range(width): # 遍历X轴
for y in range(height): # 遍历Y轴
draw.point((x,y),fill=128) # 给每个坐标画点
PIL.ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align=”left”)
在给定位置绘制字符串。
参数:
xy:左上角的文字。
text:文本内容-要绘制的文本。如果它包含任何换行字符,文本传递给multiline_text()
fill:填充文本使用的颜色。
用法:fill =128 , fill =(255,255,255) , fill(128,128,128,128) 第4个参数为透明度-rgb模式
font:字体–一imagefont实例。
spacing:间距如果文本传递给multiline_text(),像素之间的行数。
align:对齐方式–如果文本传递给multiline_text(),“左”、“中心”或“正确的”。
ImageFont 模块 图片字体
PIL.ImageFont.getsize(‘文字’)
获取写入图片字体的文字大小 ,返回长和款
PIL.ImageFont.load(filename)
加载字体文件。这个函数从给定的位图字体文件加载一个字体对象,并返回相应的字体对象。
PIL.ImageFont.load_path(filename)
加载字体文件。和.load()一样,但搜索在Python路径位图字体。
PIL.ImageFont.truetype(font=None, size=10, index=0, encoding=”)
加载一个TrueType或OpenType字体文件,并创建一个字体对象。此函数从给定的文件加载字体对象,并为给定大小的字体创建字体对象。
参数:
font:字体–TrueType字体文件。在Windows之下,如果文件在这个文件名中找不到,加载程序也会在Windows字体/目录中查找。
size:字体大小
index:索引——哪个字体要加载(默认是第一个可用的面)。
encoding:编码——使用哪种字体编码(默认是unicode)。常见的编码是“新闻中心”(Unicode),“符号”(微软的标志),“Adob”(Adobe),“项”(Adobe专家),和“Click”(Apple Roman)
https://pillow.readthedocs.io/en/4.1.x/reference/ImageFont.html