PIL:python imageing library,是python的基本图像处理库,PIL功能强大,API简单易用。由于PIL只支持python2.7,因此一群志愿者在PIL的基础上创建了新的版本pillow,加入了很多新的特性,并且支持python3.


Pillow官方教程[链接]:(https://pillow.readthedocs.io/en/latest/handbook/tutorial.html#image-enhancement)

从官方教程可以看到pillow对图像的处理包括:读写,剪切,粘贴,通道的分离,几何旋转,灰度图彩色图切换,图像增强,视频序列操作,图像打印,以及对图像流的操作。
接下来分别对pillow的各个processing操作:

from PIL import Image###图片的读写
#读取图片
im = Image.open('test.jpg')
##另一种读写图片方式
fp = open("tu.jpg", "rb")
im = Image.open(fp)  #保存图片为另y一幅图片
im.save('rgb.jpg')
#显示图片
im.show()##拷贝、粘贴、旋转、合并图片#设置要拷贝的区域
box = (100, 100, 500, 500)# 将im表示的图片对象拷贝到region中,大小为(400*400)像素。
# box变量是一个四元组(左,上,右,下)。
region  = im.crop(box)
#旋转
region = region.transpose(Image.ROTATE_90)
#粘贴box大小的region到原先的图片对象中。
im.paste(region, box)
im.save('1.jpg')##通道分离合并
r,g,b = im.split()#分割成三个通道
im = Image.merge("RGB", (b, g, r))  #将b,r两个通道进行翻转然后合并。
im.save('rgb.jpg')###几何转变
### image有resize()、rotate()和transpose()、transform()方法进行几何变换,用以重定####义图片大小,对图片进行旋转等操作。
###简单几何变换:
out = im.resize( ( 128,128))
out = im.rotate(45)#h彩色图灰度图的转化
am = im.convert('L')#将彩色图im转变为灰度图am
am.show()#图像增强from PIL import ImageFilter  im = Image.open('tu.jpg')
out = im.filter(ImageFilter.DETAIL) #滤波操作
###像素点的操作
out = im.point(lambda i : i *  1.2)

图像添加文字:

from PIL import Image,ImageDraw,ImageFontim = Image.open('tu.jpg')
draw = ImageDraw.Draw(im)(width, height) = im.size
myfont  = ImageFont.truetype('yuanqi.ttf',size = 120)
fillcolor = 'pink'#第一个参数是加入字体的坐标
#第二个参数是文字内容
#第三个参数是字体格式
#第四个参数是字体颜色
draw.text( (60,100) , u'萌萌哒' ,font = myfont , fill = fillcolor )
im.save('tu_word.jpg')


图像添加数字:

from PIL import Image,ImageDraw,ImageFontim = Image.open('tu.jpg')
draw = ImageDraw.Draw(im)(width, height) = im.size
myfont  = ImageFont.truetype('yuanqi.ttf',size = 120)#在图上画一个圆,ellipse参数分别为 左上角的坐标,右下角的坐标
#ellipse(左上X , 左上Y , 右下X , 右下Y)
draw.ellipse((width-200, 0 ,width,200),fill="red",outline="red")   draw.text((width-120,20 ),'5',font=myfont,fill='white')
im.save('tu_number.jpg')


图像转化成字符画:

from PIL import Image#要索引的字符列表
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
length = len(ascii_char)#读取图像文件
def readImg():img = Image.open('kai.png')(width,height) = img.sizeimg = img.resize( ( int(width * 0.9) ,  int(height * 0.5) ))print(img.size)return imgdef convert(img):# 转为灰度图像img = img.convert('L')txt = ''for y in range(img.size[1]):for x in range(img.size[0]):# 获取每个坐标像素点的灰度gray = img.getpixel((x,y))unit = 256.0 / lengthtxt += ascii_char[(int)(gray/unit)]txt += '\n'return txtif __name__ == '__main__':txt = convert(readImg())with open('kai.txt','w') as f:f.write(txt)

原图:

本篇文章参考博客:博客地址

python 图像处理模块pillow相关推荐

  1. Python图像处理模块pillow子模块Image用法精要

    Image是pillow库中一个非常重要的模块,提供了大量用于图像处理的方法.使用该模块时,首先需要导入. >>> from PIL import Image 接下来,我们通过几个示 ...

  2. pil对图像加透明 python_使用Python图像处理库Pillow处理图像文件

    文/江红  本文来源<Python程序设计与算法基础教程(第2版)-微课版> 本案例通过使用Python图像处理库Pillow,帮助读者进一步了解Python的基本概念:模块.对象.方法和 ...

  3. pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法

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

  4. pillow属于python标准库吗_详解Python图像处理库Pillow常用使用方法

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:PIL. PIL ...

  5. nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...

    你在用什么软件进行图像处理呢?厌倦了鼠标和手指的拖拖点点,想不想用程序和代码进行图像的高效处理,Python作为简单高效又很强大的一门编程语言,对于图像的处理自然也是轻松拿下,听起来是不是很酷很极客, ...

  6. Python图像处理库Pillow(PIL)的简单使用

    一.PIL和Pillow图像处理库 图像库PIL(Python Image Library)是Python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像 ...

  7. python图像处理模块_Python图像处理库PIL的ImageEnhance模块使用介绍

    Python图像处理库PIL的ImageEnhance模块使用介绍 发布时间:2020-08-31 20:08:55 来源:脚本之家 阅读:66 ImageEnhance模块提供了一些用于图像增强的类 ...

  8. python的图像处理模块pillow

    pip install pillow 一般导入 PIL.Image from PIL import Image 导入模块不能使用 from PIL import * im=Image.open('图片 ...

  9. 简单实用的Python图像处理库Pillow

    Pillow图像处理 Pillow 库的安装 图象处理基本知识 图像的RGB 色彩模式 像素阵列 Image 模块 打开和新建 混合 透明度混合处理 遮罩混合处理 复制和缩放 复制图像 缩放像素 缩放 ...

最新文章

  1. jsp中不能正常显示图片+不能正常显示bootstrap字体图标
  2. 不能访问win7计算机,局域网win7无法访问win10,win7访问不了局域网其他电脑
  3. 记录方法用时_知识无穷,学以致用才是关键!四个方法教你学以致用
  4. LaTeX学习经验与常用文档
  5. jenkins 关联 钉钉机器人
  6. 预训练模型的下一步?突破Impossible Triangle
  7. 把散乱的SQL赶出程序代码中
  8. gitlab syntax highlighting theme
  9. 解决Win10 /Win11 Fastboot驱动问题
  10. 【学习笔记】Creo如何创建钣金件(利用骨架)
  11. python学习之——假人配对
  12. shell的课程大纲
  13. Js 中null 和underfined的区别
  14. 海外看病大火,盛诺一家获中信里昂千万美金级C轮融资
  15. C# List排序和数字处理(三位加一撇)
  16. 常用的excel操作小技巧--自己用的,仅供记录
  17. 那些年我们遇到的坑(3)-basePackages和scanBasePackages
  18. c++入门,cout,cin
  19. Windows/Ubuntu16.04双系统和ros安装方法及可能出现的问题
  20. OSChina 周日乱弹 ——病毒,你对程序员的原力一无所知!

热门文章

  1. centos7 lvm管理 把/home空间转移给/
  2. 基于流式的md5计算-多线程下载工具Lwget介绍
  3. 兄弟们,TechEd见!
  4. 动态规划和分治法的区别
  5. 用Go 构建一个区块链 -- Part 5: 地址
  6. react.js做小程序_如何使用React.js构建现代的聊天应用程序
  7. meetup_如何使用标准库和Node.js构建Meetup Slack机器人
  8. css 形状_在CSS形状之外思考
  9. 使用Wireshark进行DNS协议解析
  10. c语言如何不产生僵尸进程,第三章 九析带你处理 zombie(defunct) 进程