pil库的依赖库_Python PIL库的运用

本文介绍了Python的PIL库,包括安装、Image类的使用,如图像读取、新建、保存、转换、缩放、旋转等操作。还详细讲解了ImageFilter和ImageEnhance类提供的图像过滤和增强功能,如模糊、轮廓、锐化等。最后,给出了制作中文字符画的示例代码。
摘要由CSDN通过智能技术生成

PIL库概述

PIL库是Python的优异第三方库,它需要通过pip安装:

pip install pillow

PIL库支持图像存储、显示和处置,它能够处置险些所有图片格式,可以完成对图像的缩放、剪裁、叠加以及向图像添加线条、图像和文字等操作。

PIL库Image类剖析

在PIL中,任何一个图像文件都可以用Image工具示意Image类的图像读取和建立方式:

Image.open(filename) #凭据参数加载图像文件

Image.new(mode, size, color) #凭据给定参数建立一个新的图像

Image.open(StringIO.StringIO(buffer)) #从字符串中获取图像

Image.frombytes(mode, size, data) #凭据像素点data建立图像

Image.verify() #对图像文件完整性举行检查,返回异常

Image类有4个处置图片的常用属性 :

Image.format #标识图像格式或泉源,若是图像不是从文件读取,值是None

Image.mode #图像的色彩模式,"L"灰度图像、"RGB"真彩色图像、"CMYK"出书图像

Image.size #图像宽度和高度,单元是像素(px),返回值是二元元组(tuple)

Image.palette #调色板属性,返回一个ImagePalette类型

Image类图片有3种转换和保留方式:

Image.save(filename, format) #将图像保留为filename文件名,format是图片格式

Image.convert(mode) #使用差别的参数,转换图像为新的模式

Image.thumbnail(size) #建立图像的缩略图,size是缩略图尺寸的二元元组

Image类图片缩放和旋转方式:

Image.resize(size)#按size巨细调整图像,天生副本

Image.rotate(angle)#按angle角度旋转图像,天生副本

Image类能够对每个像素点或者一幅RGB图像的每个通道单独举行操作,split()方式能够将RGB图像各颜色通道提取出来,merge()方式能够将各自力通道再合成一幅新的图像:

Image.point(func) #凭据函数func功能对每个元素举行运算,返回图像副本

Image.split() #提取RGB图像的每个颜色通道,返回图像副本

Image.merge(mode,bands) #合并通道 ,接纳mode色彩,bands是新色的色彩通道

Image.blend(im1,im2,alpha)

其中Image.blend(im1,im2,alpha)将两幅图片im1和im2根据如下公式插值后天生新的图像: im1 * (1.0-alpha) + im2 * alpha

PIL库的ImageFilter类和ImageEnhance类提供了过滤图像和增强图像的方式,共10种:

ImageFilter.BLUR #图像的模糊效果

ImageFilter.CONTOUR #图像的轮廓效果

ImageFilter.DETAIL #图像的细节效果

ImageFilter.EDGE_ENHANCE #图像的界限增强效果

ImageFilter.EDGE_ENHANCE_MORE #图像的阈值界限增强效果

ImageFilter.EMBOSS #图像的浮雕效果

ImageFilter.FIND_EDGES #图像的界限效果

ImageFilter.SMOOTH #图像的平滑效果

ImageFilter.SMOOTH_MORE #图像的阈值平滑效果

ImageFilter.SHARPEN #图像的锐化效果

ImageEnhance类提供了更高级的图像增强需求,它提供调整色彩度、亮度、对比度、锐化等功能:

ImageEnhance.enhance(factor) #对选择属性的数值增强factor倍

ImageEnhance.Color(im) #调整图像的颜色平衡

ImageEnhance.Contrast(im) #调整图像的对比度

ImageEnhance.Brightness(im) #调整图像的亮度

ImageEnhance.Sharpness(im) #调整图像的锐度

获取缩略图

from PIL importImage

im= Image.open("C:\\bachongying.jpg")

im.thumbnail((128,128))

im.save('1bachongying.jpg')

获取图片轮廓

from PIL importImagefrom PIL importImageFilter

im= Image.open("C:\\bachongying.jpg")

om=im.filter(ImageFilter.CONTOUR)

om.save('bachongying2.jpg')

图片浮雕化

from PIL importImagefrom PIL importImageFilter

im= Image.open("C:\\bachongying.jpg")

om=im.filter(ImageFilter.EMBOSS)

om.save('bachongying3.jpg')

做一幅中文字符画

from PIL importImage

ascii_char= list('学习使我快乐')def get_char(r, b, g, alpha=256):if alpha ==0:return ' 'gray= int(0.2126 * r + 0.7152 * g + 0.0722 *b)

unit= 256 /len(ascii_char)return ascii_char[int(gray//unit)]defmain():

im= Image.open('C:\\bachongying.jpg')

WIDTH, HEIGHT= 100, 60im=im.resize((WIDTH, HEIGHT))

txt= ""

for i inrange(HEIGHT):for j inrange(WIDTH):

txt+= get_char(*im.getpixel((j, i)))

txt+= '\n'fo= open("pic_char.txt","w")

fo.write(txt)

fo.close()

main()

原文链接:https://www.cnblogs.com/lulingboke/p/12702692.html

本站声明:网站内容泉源于网络,若有侵权,请联系我们,我们将及时处置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值