操作图像2-用pillow操作图像

本文介绍了如何使用Python的Pillow库加载、处理和裁剪图像。通过`Image.open()`方法加载图像,利用`Image.new()`创建空白图像,`crop()`方法进行裁剪操作,展示了图像处理的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                        处理Image 数据类型
                        裁剪图片

了解了pillow中颜色和坐标的工作方式,就用pillow来处理图像

图片:
这里写图片描述

//这只猫看上去太肥了, (对猫来说太笨重了)

将图像文件zophie.png放在当前的工作目录中,就可以讲Zohie的图像加载到python中,像这样:

图片
这里写图片描述

要加载图像, 就从pillow导入Image模块,并调用Image.open(),传入图像的文件名。然后,可以将加载的图像保存在CatIm这样的变量中。
Pillow的模块名称是PIL ,这保持与老模块python Imaging Library向后兼容,这就是为什么必须from PIL import Image, 而不是from pillow import image 由于pillow的创建者设计pillow模块的方式,必须使用from PIL import Image 形式的import语句,而不是简单的import pIL
如果图像不在当前工作目录,就调用os.chdir()函数,将工作目录变为包含图像文件的文件夹。

图片
这里写图片描述

Image.open()函数的返回值是Image对象数据类型,它是pillow将图像表示为python值的方法。可以调用Image.open(),传入文件名字符串,从一个图像文件(任何格式)加载一个image对象。通过save()方法,对image对象的所有更改都可以保存到图像文件中,(也是任何格式)。所有的旋转、调整大小、裁剪、绘画和其他图像操作,都通过这个image对象上的方法调用来完成。
    假定已经导入了pillow的image模块,并将zophie的图像保存在变量中。要确保zophie.png文件在当前工作目录中,让image.open()

函数能找到它。否则,必须在Image.open()的字符串参数中指定完整的绝对路径。


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

图片
这里写图片描述

    从zophie.png得到一个Image对象并保存在catIm中后,可以看到该对象的size属性是一个元组,包含该图像的宽度和高度的像素数

可以将元组中的值赋给width和height变量,以便分别访问宽度和高度。filename属性描述了原始文件的名称。format和format_description属性是字符串,描述了原始文件的图像格式。(format_description)比较详细。
最后调用save()方法,传入’zophie.jpg’,将新图像以文件名zophie.jpg保存到目录上。
pillow还提供了lmage.new()函数,它返回一个Image对象。这很像Image.open(),
不过Image.new()返回的对象表示空白的对象。Image.new()的参数如下:

*   字符串'RGBA',将颜色模式设置为RGBA (还有其它模式)
*   大小,是俩个整数元组,作为新图像的宽度和高度。
*   图像开始采用的背景颜色,是一个表示RGBA值的四整数元组。可以用ImageColor.getcolor()函数的返回值作为这个参数,另外,Image.new()也支持传入标准颜色名称的字符串。
            例如:

图片
这里写图片描述

图片
这里写图片描述

图片
这里写图片描述

这里创建了一个Image对象,它有100像素宽,200像素高,带有紫色背景。然后该图像存入文件purpleImage.png中。
再次调用Image.new(),创建另一个Image对象,这次传入(20,20)作为大小,没有指定背景色。
如果未指定颜色参数,默认的颜色是不可见的黑色(0,0,0,0)因此第二个图像具有透明背景,将这个20*20的透明正方形存入transparentImage.png.


裁剪图片
裁剪图像是在指图像内选择一个矩形区域,并删除矩形之外的一切。Image对象的crop()方法接受一个矩形元组,返回一个Image对象原封不动,crop()返回一个新的Image对象。请记住,矩形元组(这里就是要裁剪的区域)包括左列和顶行的像素,直至但不包括右列和底行的像素。
demo:
https://app.yinxiang.com/shard/s8/nl/16540264/67fe8e1e-241e-4f6e-881e-8ced76ce48b8?title=%E6%93%8D%E4%BD%9C%E5%9B%BE%E5%83%8F2-%E7%94%A8pillow%E6%93%8D%E4%BD%9C%E5%9B%BE%E5%83%8F

图片
这里写图片描述

图片
这里写图片描述

(新图像只有原始图像裁剪后的部分)

这得到一个新的Image对象,是剪裁后的图像,保存在cropedim中,然后调用cropedim的save(),将裁剪后的 图像存入cropped.png.新文件cropped.png从原始图像创建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值