介绍几个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的第三方库_python学习(十九)常见的第三方库相关推荐

  1. python dataframe 新列_Python第二十四课:Pandas库(四)

    Python第二十四课:Pandas库(四)点击上方"蓝字",关注我们. 不知不觉,我们已经跨越了千难万险,从零开始,一步步揭开了Python神秘的面纱.学到至今,回过头,才晓得自 ...

  2. python异步io 队列_python 学习笔记九 队列,异步IO

    queue (队列) 队列是为线程安全使用的. 1.先入先出 import queue #测试定义类传入队列class Foo(object): def __init__(self,n): self. ...

  3. QML学习十九:ttf字体库使用

    若该文为原创文章,转载请注明原文出处 一.前言 在使用QML时,常常自定义按钮,按钮上有显示个图标,其实,那不是图标,是文本,如何显示? 本篇记录,如何导入阿里巴巴字体库,并调用显示. 二.阿里巴巴字 ...

  4. [Python从零到壹] 五十九.图像增强及运算篇之图像锐化Scharr、Canny、LOG实现边缘检测

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. [Python从零到壹] 三十九.图像处理基础篇之图像几何变换(镜像仿射透视)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. [Python从零到壹] 四十九.图像增强及运算篇之顶帽运算和底帽运算

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  7. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  8. python海龟绘图画玫瑰花_python学习(二)之turtle库绘图

    今天是三月七号,也就是女生节,或者女神节.不知道你是不是有自己喜欢的女孩子,在这里你可以用turtle库绘制一朵玫瑰花,送给你喜欢的姑娘.(拉到最后有惊喜哦)但在画这朵玫瑰花之前,先来一个基础的图形, ...

  9. python用法查询笔记_Python学习笔记 - 2 - PyCharm的基本使用

    什么是IDE 开始学习的小白同学,一看到这三个字母应该是懵逼的,那么我们一点一点来说. 既然学习Python语言我们就需要写代码,那么代码写在哪里呢?在记事本里写 在word文档里写 在sublime ...

最新文章

  1. Java中的6颗语法糖
  2. 图论算法(六)-- 二分图的最大分配问题(JAVA)
  3. linux 文件格式压缩
  4. Maven-pon.xml模板(ssm自用)持续更新
  5. matlab图像的空域滤波增强处理,matlab 数字图像的空域滤波代码
  6. AI工程师的薪资高得逆天: 2020年,是入坑的最好时机!
  7. 一个大神的文章如何在没有OPENCV的电脑上跑你的程序调用的opencv程序
  8. glibc静态链接 libc.a(nsswitch.o)(.data+0x64):undefined reference to `_nss_files_getaliasent_r' 错误解决方法
  9. PDF格式分析(六)PDF版本
  10. 编译原理(九)——递归下降法
  11. 用Python讲述:地理“经纬度”数据的4种转换方法!
  12. java中gc是什么_深入理解Java GC
  13. 装了xmapp还需要装mysql吗_安装xamp之后,appach、mysql等问题的总结
  14. win7虚拟机_虚拟机VMware 15安装教程
  15. 「环卫吸粪车」天河区抽化粪池抽泥浆抽污水来了,解决黑臭水体!
  16. 【电商】电商后台设计—购物车
  17. JQuery修改对象的属性值
  18. 基于SSM+mysql+mybatis+js+html+css实现电子产品在线商城系统,商品管理后台
  19. LAMP - 学习/实践
  20. 借助新电商平台,湖北荷塘三宝直达全国餐桌

热门文章

  1. Jerry答网友提问:SAP CRM WebClient UI里的EXT,STRUCT等含义
  2. What is the usage of getMasterKeyAttributes in configuration.js
  3. Change code to ensure that OPA5 work also in WebIDE
  4. What does SAP UI5 bindItem occurs
  5. error occurred when trying to upload ui5 project to ABAP repository in win8
  6. Opportunity在Fiori cloud system上编辑之后超时的根源分析
  7. 关于CRM WebClient UI缓存清理的讨论
  8. Font support in Adobe form
  9. SAP IBASE Category 01和03的区别
  10. SAP CRM呼叫中心里的Java stack