Python Pillow 模块

安装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=”)

加载一个TrueTypeOpenType字体文件,并创建一个字体对象。此函数从给定的文件加载字体对象,并为给定大小的字体创建字体对象。

参数:
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

    原文作者:python入门
    原文地址: https://my.oschina.net/esdn/blog/914253
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞