原文链接: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. Python数据分析工具库-Numpy 数组支持库(一)

    1 Numpy数组 在Python中有类似数组功能的数据结构,比如list,但在数据量大时,list的运行速度便不尽如意,Numpy(Numerical Python)提供了真正的数组功能,以及对数据 ...

  2. Python20-Day05

    一.模块与包 1.模块 什么是模块? 在python中,模块可以分为四个通用类别: 1. 使用python编写的.py文件 2. 已经被编译为共享库或DLL的c或者c++扩展 3. 把一系列模块组织到 ...

  3. No.110_第三次团队会议

    前端的易帜 前端在整个软件中有着举足轻重的地位.前端设计一般可以理解为视觉设计,前端开发则是前台代码的实现. 随着科技水平的提高和生产力的提高,人民对于审美的要求逐渐增高.在没有科技壁垒的情况下,是否 ...

  4. 谈对“Git”的认识与理解

    自诞生于2005年以来,Git日臻完善,在高度易用的同时,仍然保留着初期设定的目标.它的速度飞快,及其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求.接着说说 ...

  5. ubuntu下编译ffmpeg+SDL+ffplay提取motion vector

    编译ffmpeg: 第一步: 从官网http://ffmpeg.org/下载最新版本. 解压tar -xjvf ffmpeg-3.3.1.tar.bz2 进入目录cd ffmpeg-3.3.1 第二步 ...

  6. DFS--障碍在指定时间会消失

    哈利被困在了一个魔法花园里.魔法花园是一个 N*M 的矩形,在其中有着许多植物, 这些植物会在时刻 K 的倍数消失. 哈利每单位时间都会选择上.下.左.右四 个方向的其中一个进行移动. #includ ...

  7. Android笔记-1

    1.点击按钮出现小窗口(响应事件) 配置方式: Activity_main.xml文件中:<Button (输入)android: onClick=”test1” /> MainActiv ...

  8. DPDK L3fwd 源码阅读

    代码部分 整个L3fwd有三千多行代码,但总体思想就是在L2fwd的基础上,增加网络层的根据 IP 地址进行路由查找的内容. main.c 文件 int main(int argc, char **a ...

  9. Week4-作业1

    第四章        这一章主要讲了代码规范.复审和团队合作这两项内容.        在关于代码设计规范方面,书中讲到了关于goto的使用:        “函数最好有单一的出口,为了达到这一目的, ...

  10. CefSharp,Winform程序中加载web网页

    源码地址:https://github.com/cefsharp/CefSharp 开源相关:https://github.com/cefsharp/CefSharp/tree/master/CefS ...