pil(python image library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了。

其官方主页为:pil。 pil历史悠久,原来是只支持python2.x的版本的,后来出现了移植到python3的库pillow,pillow号称是friendly fork for pil,其功能和pil差不多,但是支持python3。

pil(python imaging library)是python一个强大方便的图像处理库,只支持到python2.7。

pillow是pil的一个派生分支,在python3标准库中用pillow代替pil。

pillow官网:

下面是使用例子,用法可见代码注释。

from pil import image,imagefilter,imagegrab,imagedraw,imagefont

# 创建图片:宽800*高600,红色

imnew = image.new('rgb',(800,600),(255,0,0))

# 显示图片

#imnew.show()

# 抓取屏幕

imgrab = imagegrab.grab()

imgrab.save('grab.jpg', 'jpeg')

# 打开图片

im = image.open('1.jpg')

# 复制图片

im1 = im.copy()

im2 = im.copy()

im3 = im.copy()

im4 = im.copy()

im5 = im.copy()

im6 = im.copy()

im7 = im.copy()

# 获得图片宽高:

w, h = im.size

print('图片宽高:{} * {}'.format(w, h))

# 缩略图(图片不会被拉伸,只能缩小)

im.thumbnail((w//2, h//2))

im.save('1_thumbnail.jpg', 'jpeg')

# 缩放(图片可能会被拉伸,可缩小也可放大)

im1 = im1.resize((w//2, h//2))

im1.save('1_resize.jpg', 'jpeg')

# 模糊图片

im2 = im2.filter(imagefilter.blur)

im2.save('1_blur.jpg', 'jpeg')

# 旋转图片,逆时钟旋转45度

im3 = im3.rotate(45)

im3.save('1_rotate.jpg', 'jpeg')

# 图片转换:左右转换 flip_left_right,上下转换 flip_top_bottom

im4 = im4.transpose(image.flip_left_right)

im4.save('1_transpose.jpg', 'jpeg')

# 图片裁剪

box = (200,200,400,400) #左上角(0,0),4元组表示坐标位置:左、上、右、下

im5 = im5.crop(box)

im5.save('1_crop.jpg', 'jpeg')

# 图片上添加文字

draw = imagedraw.draw(im6)

#truetype设置字体、文字大小

#stxingka.ttf华文行楷 simkai.ttf 楷体 simli.ttf 隶书

font = imagefont.truetype("c:\\windows\\fonts\\stxingka.ttf", 20)

draw.text((100,100), ('hello word \n你好,世界'), fill='#0000ff', font=font)

im6.save('1_drawtext.jpg', 'jpeg')

# 图片上添加图片(粘贴图片)

imtmp = image.new('rgb',(30,30),'blue')

im7.paste(imtmp, (50,50)) #第2个参数为坐标

im7.save('1_paste.jpg','jpeg')

# 图片横向拼接:拼接上面im6、im7(两张图片大小一样)

im6width, im6height = im6.size

imhorizontal = image.new('rgb', (im6width * 2, im6height))

imhorizontal.paste(im6, (0,0))

imhorizontal.paste(im7, (im6width,0))

imhorizontal.save('1_horizontal.jpg', 'jpeg')

# 图片竖向拼接:拼接上面im6、im7

imvertical = image.new('rgb', (im6width, im6height*2))

imvertical.paste(im6, (0,0))

imvertical.paste(im7, (0,im6height))

imvertical.save('1_vertical.jpg', 'jpeg')

总结

以上所述是小编给大家介绍的python图像处理库pillow常用使用方法,希望对大家有所帮助

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法相关推荐

  1. python从random生成列表_详解Python利用random生成一个列表内的随机数

    详解Python利用random生成一个列表内的随机数 首先,需要导入random模块: import random 随机取1-33之间的1个随机数,可能重复: random.choice(range ...

  2. python 线程安全的数据类型_详解python多线程、锁、event事件机制的简单使用

    详解python多线程.锁.event事件机制的简单使用 发布时间:2020-09-25 02:04:12 来源:脚本之家 阅读:117 作者:君惜 线程和进程 1.线程共享创建它的进程的地址空间,进 ...

  3. python中break怎么用_详解Python中break语句的用法

    详解Python中break语句的用法 在Python中的break语句终止当前循环,继续执行下一个语句,就像C语言中的break一样. break最常见的用途是当一些外部条件被触发,需要从一个循环中 ...

  4. python的tkinter插入图片_详解python tkinter 图片插入问题

    通过tkinter.PhotoImage插入GIF, PGM/PPM格式的图片. import tkinter class Gui: def __init__(self): self.gui=tkin ...

  5. python获取mp3音频数据_详解python进行mp3格式判断 python怎么读取mp3文件

    python中哪个库有em算法 EM算法初稿2016-4-28 初始化三个一维的高斯分布 from numpy import * import numpy as np import matplotli ...

  6. python怎么设置七牛云_详解Python在七牛云平台的应用(一)

    七牛云七牛云是国内领先的企业级云服务商.专注于以数据为核心的云计算业务,围绕富媒体场景推出了对象存储.融合CDN.容器云.大数据.深度学习平台等产品,并提供一站式视频云解决方案,同时打造简单,可信赖的 ...

  7. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  8. python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本

    以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本 需求: 将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径. ...

  9. python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)

    很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...

  10. python策略模式包含角色_详解Python设计模式之策略模式

    虽然设计模式与语言无关,但这并不意味着每一个模式都能在每一门语言中使用.<设计模式:可复用面向对象软件的基础>一书中有 23 个模式,其中有 16 个在动态语言中"不见了,或者简 ...

最新文章

  1. CUDA error: device-side assert triggered Assertion t 」= 0 t n classes failed
  2. 提升淘宝排名的27个因素
  3. python3项目-30 个惊艳的Python开源项目
  4. 复旦大学肖仰华教授:知识图谱与认知智能 | 附PPT下载
  5. 认识线程 java 1615387415
  6. linux 中断分上下部分的原因
  7. 如何安装html网站模板,网站模板安装说明
  8. 查询mysql数量_Linux 运维基础 Mysql性能优化
  9. spring教程笔记4
  10. java青鸟影院项目_影院在线售票云平台(仿猫眼电影,附SpringBoot项目源码) 系统功能实现...
  11. 高中计算机考试app,信考中学信息技术考试练习系统 V17.1.0.1009 浙江高中版
  12. texlive 2022安装与使用
  13. 无线路由桥接关掉服务器要怎么办,路由器设置无线桥接后不能登录副路由器怎么办?...
  14. python四分位数_四分位数计算过程
  15. Eclipse官网查找历史版本Eclipse
  16. 走近棒球运动·韩国职业棒球联盟·MLB棒球创造营
  17. HM二次开发 - 外部程序采用socket与HM实现通信
  18. VC窗口刷新InvalidateRect和…
  19. 网易起花名,阿里赚吆喝
  20. OPLS全原子力场在lammps中的使用

热门文章

  1. [HDU]1723Distribute Message
  2. 写入缓存 还是 直接 写入 json 方便,
  3. NEC描绘智慧城市蓝图
  4. CodeSmith NetTier模板生成的代码框架用法 (转)
  5. 当科学家们使用计算机来试图,当科学家们使用计算机来试图预测复杂的--易哈佛考试题库...
  6. jpa调用mysql函数_Spring data jpa 调用存储过程处理返回参数及结果集(示例代码)
  7. Android 数据库框架 DBFlow 的使用
  8. 关于近期对自己的总结
  9. Linux基础之常见命令用法(一)
  10. 1.1机器学习基础-python深度机器学习