python中pillow库怎么使用_python之pillow库基本使用

本文介绍了Python中Pillow库的使用方法,包括安装、加载图像、查看图像属性、保存、转换模式、调整大小、旋转、过滤、增强、截图、裁剪与粘贴等操作,展示了丰富的图像处理功能。
摘要由CSDN通过智能技术生成

安装它很简单 pip install pillow

使用方式:

#python2

import Image

#python3(因为是派生的PIL库,所以要导入PIL中的Image)

from PIL import Image

我用的python3.8所以选第二种

PIL最重要的类是 Image你可以从文件加载图像,或者处理其他图像, 或者从 scratch 创建。

要从文件加载图像 通过 Image 模块的 open() 函数,:

open

from PIL import Image

im = Image.open('f117.jpg')

# 这句话是解决pycharm没有代码提示的

assert isinstance(im, Image.Image)

# 显示图片

im.show()

format,size,mode

format属性定义了图像的格式,如果图像不是从文件打开的,那么该属性值为None;size属性是一个tuple,表示图像的宽和高(单位为像素);mode属性为表示图像的模式,常用的模式为:L为灰度图,RGB为真彩色,CMYK为pre-press图像。如果文件不能打开,则抛出IOError异常。

print(im)

print(f"{im.format}+++{im.size}+++{im.mode}")

#结果:

# # JPEG+++(1024, 680)+++RGB

save

保存操作

im.save('you path')

convert()

convert() 是图像实例对象的一个方法,接受一个 mode 参数,用以指定一种色彩模式,mode 的取值可以是如下几种:

·1(1位像素,黑白,存储1像素/字节)

·L(8位像素,黑白)

·P(8位像素,使用调色板映射到任何其他模式)

·RGB (3x8位像素,原色)

·RGBA (4x8位像素,带透明蒙版的真实颜色)

·CMYK (4x8位像素,分色)

·YCbCr (3x8位像素,彩色视频格式)

·I(32位有符号整数像素)

·F(32位浮点像素)

bw = im.convert('L')

bw.save('tt.jpg')

c28141fe63b16931608eb79f6c720bb5.png

在做图像处理时基本上是把彩色图片转换成黑白二值图像

resize()

调整图片大小

im.resize()

rotate

图片旋转45度

im.rotate(45)

filter

ImageFilter和ImageEnhance两个类提供了图片的过滤和增强

from PIL import Image, ImageFilter

im = Image.open(‘1.png’)

# 高斯模糊

im.filter(ImageFilter.GaussianBlur)

# 普通模糊

im.filter(ImageFilter.BLUR)

# 边缘增强

im.filter(ImageFilter.EDGE_ENHANCE)

# 找到边缘

im.filter(ImageFilter.FIND_EDGES)

# 浮雕

im.filter(ImageFilter.EMBOSS)

# 轮廓

im.filter(ImageFilter.CONTOUR)

# 锐化

im.filter(ImageFilter.SHARPEN)

# 平滑

im.filter(ImageFilter.SMOOTH)

# 细节

im.filter(ImageFilter.DETAIL)

from PIL import Image,ImageEnhance

im = Image.open('tt.png')

# 这句话是解决pycharm没有代码提示的

assert isinstance(im, Image.Image)

print(im)

#亮度增强

epr = ImageEnhance.Brightness(im)

a = epr.enhance(1.5)

a.show()

#色度增强

epr2 = ImageEnhance.Color(im)

a2 = epr2.enhance(1.5)

a2.show()

#对比度增强

epr3 = ImageEnhance.Contrast(im)

a3 = epr3.enhance(1.5)

a3.show()

#锐度增强

epr4 = ImageEnhance.Sharpness(im)

a4 = epr4.enhance(2)

a4.show()

查看图像直方图

im.histogram()

屏幕截图

im1 = ImageGrab.grab()#不带参数表示全屏幕截图

im2 = ImageGrab.grab([0, 0, 200, 50])#截取屏幕指定区域的图像

im3 = ImageGrab.grab((0, 0, 200, 50))#截取屏幕指定区域的图像

im1.save('xxxxxx1.png')

im2.save('xxxxxx2.png')

im3.save('xxxxxx3.png')

图像裁剪与粘贴

box = (120, 194, 220, 294) #定义裁剪区域

region = im.crop(box) #裁剪

region = region.transpose(Image.ROTATE_180)

im.paste(region, box) #粘贴

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值