python-操作图像-pillow模块

Pillow模块:处理图像文件pillow的模块名称是裁剪图像、调整图像大小、编辑图像的内容。
摘要由CSDN通过智能技术生成

Pillow模块:处理图像文件
pillow的模块名称是PIL

pip install pillow

裁剪图像、调整图像大小、编辑图像的内容

一、计算机图像基础

1.颜色和 RGBA 值

红、绿、蓝和 alpha(透明度) alpha也是0~255(0 完全透明)

Green - - - (0, 128, 0, 255)
Gray - - - (128, 128, 128, 255)
Purple - - - (128, 0, 128, 255)

ImageColor.getcolor()函数
arg1: 颜色名称(不区分大小写) - - - - - arg2:‘RGBA’ - - - - - 返回一个 RGBA 元组

from PIL import ImageColor
ImageColor.getcolor('red', 'RGBA')			# (255, 0, 0, 255)
ImageColor.getcolor('chocolate', 'RGBA')	# (210, 105, 30, 255)

CMYK 墨盒:青色(蓝色)、品红色(红色)、黄色和黑色墨水
RGB

2.坐标和 Box 元组

图像像素用 x(水平)和 y(垂直)坐标指定

原点是位于图像左上角的像素,用符号(0,0)指定

许多 Pillow 函数和方法需要一个矩形元组参数。这意味着 Pillow 需要一个四个整坐标的元组,表示图像中的一个矩形区域。四个整数按顺序分别是:
左:该矩形的最左边的 x 坐标
顶:该矩形的顶边的 y 坐标
右:该矩形的最右边右面一个像素的 x 坐标。此整数必须比左边整数大
底:该矩形的底边下面一个像素的 y 坐标。此整数必须比顶边整数大
注意:该矩形包括左和顶坐标,直到但不包括右和底坐标

二、用 Pillow 操作图像

from PIL import Image
catIm = Image.open('zophie.png')

Image.open()函数:返回值是 Image 对象数据类型,它是 Pillow 将图像表示为Python 值的方法。可以调用 Image.open(),传入文件名字符串,从一个图像文件(任何格式)加载一个 Image 对象。通过 save()方法,对 Image 对象的所有更改都可以保存到图像文件中(也是任何格式)。所有的旋转、调整大小、裁剪、绘画和其他图像操作,都通过这个 Image 对象上的方法调用来完成。

1.处理 Image 数据类型

Image 对象有一些有用的属性,提供了加载的图像文件的基本信息:它的宽度和高度、文件名和图像格式(如 JPEG、GIF 或 PNG)

from PIL import Image
# 加载图片
catIm = Image.open('zophie.png')
# image的宽高
catIm.size	# (816, 1088)
width, height = catIm.size
width	# 816

# image的名称
catIm.filename	# 'zophie.png'

# image的后缀名
catIm.format	# 'PNG'

catIm.format_description	# 'Portable network graphics'  (便携式网络图形)

catIm.save('zophie.jpg')

Image.new()函数,返回一个 Image 对象,表示空白的图像

img = Image.new(‘RGB’, (width, height), color=‘white’)

# 创建新的图像对象
from PIL import Image
im = Image.new('RGBA', (100, 200), 'purple')
im.save('purpleImage.png')
# 未指定颜色参数,默认的颜色是不可见的黑色(0,0,0,0)
im2 = Image.new('RGBA', (20, 20))
im2.save('transparentImage.png')

ImageColor.getcolor()函数的返回值作为Image.new()的arg3。另外,Image.new()也支持传入标准颜色名称的字符串。

2.裁剪图片

裁剪图像是指在图像内选择一个矩形区域,并删除矩形之外的一切

Image 对象的 crop()方法接受一个矩形元组,返回一个 Image 对象,表示裁剪后的图像。裁剪不是在原图上发生的,也就是说,原始的 Image 对象原封不动,crop()方法返回一个新的 Image 对象

img_cropped = img.crop((left, top, right, bottom))

croppedIm = catIm.crop((335, 345, 565, 560))
croppedIm.save('cropped.png')

3.复制和粘贴图像到其他图像 copy()

catIm = Image.open('zophie.png')
catCopyIm = catIm.copy()

paste()方法在 Image 对象调用,将另一个图像粘贴在它上面

faceIm = catIm.crop((335, 345, 565, 560))
faceIm.size		# (230, 215)
catCopyIm.paste(faceIm, (0, 0))
catCopyIm.paste(faceIm, (400, 500))
catCopyIm.save('pasted.png')

假定要用 Zophie 的头平铺整个图像

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔷莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值