原文链接:http://www.limerence2017.com/2017/12/28/python19/#more

介绍几个python中常见的第三方库.

Pillow

Pillow简称PIL,是python中常用的图形图像处理模块。写一个简单的例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from PIL import Image, ImageFilter
# 打开一个jpg图像文件,注意是当前路径:
im = Image.open('test.jpg')
#获取图片大小
w,h = im.size
print('Original image size : width:%d height: %d' %(w,h)) #图片缩放
im.thumbnail((w//2, h//2)) print('Resize image to: %dx%d' % (w//2, h//2))
# 把缩放后的图像用jpeg格式保存:
im.save('test2.jpg', 'jpeg') # 打开一个jpg图像文件,注意是当前路径:
im = Image.open('test.jpg')
# 应用模糊滤镜:
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg', 'jpeg') im2 = im.filter(ImageFilter.CONTOUR)
im2.save('contour.jpg','jpeg')

Image.open函数打开一张图片,然后调用thumbnail进行缩放,调用save进行存储。filter函数
为滤镜函数,可以匹配不同的滤镜模式,如模糊,边界效果等等。
原图:

通过滤镜模糊模式:

通过滤镜边界模式:

下面利用PIL库实现一个生成验证码的小程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random #随机大写字母:
def rndChar():
return chr(random.randint(65,90))
#随机颜色1:
def rndColor():
return(random.randint(64,255), random.randint(64,255), random.randint(64,255))
#随机颜色2:
def rndColor2():
return(random.randint(32,127), random.randint(32,127), random.randint(32,127)) #240*60
width = 60*4
height = 60
#Image.new(mode, size, color=None)
image = Image.new('RGB',(width,height), (255,255,255))
#创建Font对象
font = ImageFont.truetype('C:\\WINDOWS\\Fonts\\SIMYOU.TTF',36)
# 创建draw对象并和image绑定
#用于以后绘制像素点和文本
draw = ImageDraw.Draw(image)
#通过像素点绘制填充图片
for x in range(width):
for y in range(height):
draw.point((x,y),fill=rndColor()) #绘制字母
for t in range(4):
draw.text((60*t+10,10),rndChar(),font=font, fill=rndColor2())
#模糊处理
#image = image.filter(ImageFilter.BLUR)
image.save('code.jpg','jpeg')

chardet检测编码

1
2
3
4
5
6
7
8
9
10
11
import chardet
rs = chardet.detect(b'Hello, world!')
print(rs) data = '江船火独明'.encode('gb2312')
rs = chardet.detect(data)
print(rs) data2 = '此情可待成追忆'.encode('utf-8')
rs2 = chardet.detect(data2)
print(rs2)

用chardet可以判断编码方式,在不知道字节是按照什么格式编码时可以采用chardet。

tkinter 制作GUI界面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from tkinter import *

class Application(Frame):
def __init__(self, master = None):
Frame.__init__(self,master)
self.pack()
self.createWidgets() def createWidgets(self):
self.helloLabel = Label(self, text='Hello, world!')
self.helloLabel.pack()
self.quitButton = Button(self, text = 'Quit', command=self.quit)
self.quitButton.pack() app = Application()
# 设置窗口标题:
app.master.title('Hello World')
# 主消息循环:
app.mainloop()

pack()方法是将Widgets对象加载到父容器中。
具体的API读者可以查看手册。这些第三方库用到的时候再具体学习即可。

我的公众号,谢谢关注:

python学习(十九)常见的第三方库的更多相关文章

  1. Python学习(六)模块 —— 第三方库

    Python 第三方库 安装第三方库 在Python中,安装第三方库包,是通过setuptools这个工具完成的.Python有两个封装了setuptools的包管理工具:easy_install和p ...

  2. python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...

  3. python第二十九课——文件读写(复制文件)

    自定义函数:实现文件复制操作有形参(2个) 没有返回值相似版(不用) def copyFile(src,dest): #1.打开两个文件:1个关联读操作,1个关联写操作 fr=open(src,'rb ...

  4. python第二十九课——文件读写(读取读取中文字符)

    演示:读取中文字符 结论: 1).如果不设置encoding,默认使用gbk进行编解码 2).如果编码和解码不一致,最终导致报错,但是一旦设置了errors='ingore',那么就不会报错,而采取乱 ...

  5. Python连接数据库流行用到的第三方库

    Python连接数据库流行用到的第三方库: mysqldb:只支持Python2.x mysqlclient : mysqldb的衍生版本,完全兼容mysqldb,同时支持Python3.x,安装较复 ...

  6. python pip使用国内镜像安装第三方库:命令行或PyCharm

    python pip使用国内镜像安装第三方库:命令行或PyCharm 转载: https://blog.csdn.net/lly1122334/article/details/80646996

  7. Python学习笔记011_模块_标准库_第三方库的安装

    容器 -> 数据的封装 函数 -> 语句的封装 类 -> 方法和属性的封装 模块 -> 模块就是程序 , 保存每个.py文件 # 创建了一个hello.py的文件,它的内容如下 ...

  8. python 技巧 之 pyCharm快速添加第三方库和插件

    学习python有几个月,安装第三方库都是通过 pip install 或者 easy_install.每次都要打开命令行感觉太麻烦.还好Pycharm提供了安装第三方库和安装插件的功能. 首先打开P ...

  9. Python爬虫(十九)_动态HTML介绍

    JavaScript JavaScript是网络上最常用也是支持者对多的客户端脚本语言.它可以收集用户的跟踪数据,不需要重载页面直接提交表单,在页面嵌入多媒体文件,甚至运行网页游戏. 我们可以在网页源 ...

随机推荐

  1. 感谢Thunder

    感谢Thunder团队中的每一位成员. 组长王航认真负责,是一个合格优秀的领导者与伙伴,老师布置的任务都会及时分配给每个人,对待每一项任务都认真严谨负责,了解每个成员的优势及强项. 成员李传康.宋雨. ...

  2. No.101_第二次团队会议

    时间的敲定 在这一次的会议中,明确了任务目标,将任务进行合理分配,并且规划了整个任务的时间节点,这对团队来说非常重要. 一.最终项目 在上一节课的时候,我们最终没有拿到学霸开发项目,最后爬虫也被选走了 ...

  3. 实验一linux 系统简介和实验二基本概念及操作

    作业 zy e

  4. Sprint10

    进展:设置事件提醒部分已经完成,接下来是实现完成后在添加主界面显示已添加的事件及时间,并可设置可用与不可用.

  5. Struct2笔记②--完善登陆代码

      上节课的代码 写完整 登陆成功在页面上显示用户名和密码: username:${requestScope.username }<br> password:${requestScope. ...

  6. Cosplay之孩子的妈咪

    很荣幸的担任“孩子妈妈”的角色,站在父母的角度去思考怎样的一个四则运算的APP才算是符合要求,可以受到广大家长的喜爱.不外乎有这样一些功能:1.可以随时的给孩子出题目,而且可以很快的得出正确答案.分析 ...

  7. 微服务负载均衡 —— ribbon

    负载均衡是系统高可用.缓解网络流量和处理能力扩容的重要手段,广义的负载均衡指的是服务端负载均衡,如硬件负载均衡(F5)和软件负载均衡(Nginx).负载均衡设备会维护一份可用的服务器的信息,当客户端请 ...

  8. 团队作业之四则运算GUI展示

    一.项目Coding.net原码仓库地址:https://git.coding.net/caoying/Teamwork.git 队员: 卢琪:2016011986 曹滢:2016012102 二.P ...

  9. ThinkPhp输入参数过滤

    I('id',0); // 获取id参数 自动判断get或者post,不存在时返回默认值0 I('post.name','','htmlspecialchars'); //获取$_POST['name ...

  10. 【Leetcode】82. Remove Duplicates from Sorted List II

    Question: Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only dis ...