Python Pillow 模块
2017-06-04 00:00
162 查看
摘要: Pillow 版本 4.1
size:图片大小
width:图片长度
height:图片宽度
mode: 颜色模式
size:(长,宽) 图片大小
color:背景颜色
注意:文件名相同会被覆盖,所以永远只会生成1张图片
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:填充-颜色用于点
给所有像素画点:
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(),“左”、“中心”或“正确的”。
获取写入图片字体的文字大小 ,返回长和款
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
安装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
相关文章推荐
- 在Python 中使用模块和类
- python3之模块的显要特性:属性
- 基于STM32单片机开发光学指纹识别模块(FPM10A)全教程
- Winform开发框架之字典管理模块的更新,附上最新2013年全国最新县及县以上行政区划代码sql脚本
- PowerShell入门教程之编写和使用脚本模块实例
- Ansible相关模块
- nginx upstream模块
- Ruby之旅(六) 模块以及类的多继承
- Maven实战(九)---模块聚合和继承
- Node.js的模块导出exports 和 module.exports 的区别
- 毕业设计需求分析1--模块
- (翻译)《Expert .NET 2.0 IL Assembler》 第六章 模块和程序集(二)
- Android 应用程序模块: 应用, 任务, 进程, 和线程
- lua模块几种形式
- python解析模块(ConfigParser)使用方法
- 一个HelloWorld的简单内核模块例子
- 利用setuptools的entry_point参数实现模块动态导入
- 安装python的redis模块
- 33-3 ansible常用模块事例
- Windows 下 Nginx 添加 ngx_http_sub_module 模块