原文链接: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. ftp部署及使用

    常用软件安装及使用目录 http://www.jb51.net/article/106604.htm   ftp部署 本篇文章主要介绍了CentOS7.0下安装FTP服务的方法,小编觉得挺不错的,现在 ...

  2. Tomcat之初识初体验

    1.what's this? Stable performance, free Java web application server! 相关: Java,Javac,JVM,JRE,JDK,Java ...

  3. nginx正向vs反向代理

    1.概述 nginx的正向代理,只能代理http.tcp等,不能代理https请求.有很多人不是很理解具体什么是nginx的正向代理.什么是反向代理.下面结合自己的使用做的一个简介: 1)正向代理: ...

  4. 安装hive的web界面

    参考: http://blog.csdn.net/xinghalo/article/details/52433914 报错参考; http://blog.163.com/artsn@126/blog/ ...

  5. [东北师大软工]Week2-作业2:个人项目实战 初步测试结果

    作业地址 https://edu.cnblogs.com/campus/nenu/2016SE_NENU/homework/1656 测试须知 测试机为Windows环境,所有提交到Coding.ne ...

  6. Sprint10

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

  7. 优化Hibernate所鼓励的7大措施:

    优化Hibernate所鼓励的7大措施: 1.尽量使用many-to-one,避免使用单项one-to-many 2.灵活使用单向one-to-many 3.不用一对一,使用多对一代替一对一 4.配置 ...

  8. 软工1816 · 作业(十二)Beta答辩总结

    组长博客 宣传视频 github团队项目仓库 本组成员 队员姓名与学号 124 王彬(组长) 206 赵畅 215 胡展瑞 320 李恒达 131 佘岳昕 431 王源 206 陈文垚 209 陈志炜 ...

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

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

  10. 深入理解Java类加载器(2)

    1 基本信息 每个开发人员对Java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载.Java的类加载机制是技术体系中比较核心的 ...