理解你的要求后,我将为你提供一篇详细的“Python使用PIL进行图像处理(等比例压缩、裁剪)实例代码”的攻略。
PIL简介
Python Imaging Library(PIL)是Python的一个常用图像处理库,通过使用PIL,可以方便地进行图像压缩、旋转、裁剪、调整大小等操作。PIL支持多种图像格式,如JPEG、PNG、BMP等。PIL的核心模块是PIL.Image类。
安装PIL
在使用PIL前,需要先安装它。PIL的最新版本不再维护,推荐使用Pillow库,它是一个对PIL的后续支持,可以在PIL的基础上提供更多功能和更好的兼容性。可以使用pip来安装:
pip install Pillow
等比例压缩图片
等比例缩放的目的是保持图片的比例不变,只是将图片的大小缩小到一定程度。下面的示例将演示如何使用PIL对图片进行等比例压缩:
from PIL import Image
def compress_image(infile, outfile, width):
"""
图片等比例缩小
:param infile: 源图片
:param outfile: 缩略图存放地址
:param width: 缩略图宽度
:return: 无返回值
"""
im = Image.open(infile)
(x, y) = im.size
height = int(y * width / x)
out = im.resize((width, height), Image.ANTIALIAS)
out.save(outfile)
上述代码中,compress_image函数用于生成指定宽度的等比例压缩图片,其中:
- infile:输入图片的完整路径;
- outfile:输出图片的完整路径;
- width:压缩后图片的宽度。
使用示例:
compress_image('test.jpg', 'test-200.jpg', 200)
将test.jpg压缩为宽度为200px的图片,保存为test-200.jpg。
图片裁剪
裁剪图片是指在图片中选择一个矩形区域,然后将该区域裁剪出来。下面的示例将演示如何使用PIL对图片进行裁剪:
from PIL import Image
def crop_image(infile, outfile, x1, y1, x2, y2):
"""
图片裁剪
:param infile: 源图片
:param outfile: 裁剪后的图片
:param x1: 左上角横坐标
:param y1: 左上角纵坐标
:param x2: 右下角横坐标
:param y2: 右下角纵坐标
:return: 无返回值
"""
im = Image.open(infile)
crop_im = im.crop((x1, y1, x2, y2))
crop_im.save(outfile)
上述代码中,crop_image函数用于裁剪出指定区域的图片,其中:
- infile:输入图片的完整路径;
- outfile:输出图片的完整路径;
- x1:裁剪左上角横坐标;
- y1:裁剪左上角纵坐标;
- x2:裁剪右下角横坐标;
- y2:裁剪右下角纵坐标。
使用示例:
crop_image('test.jpg', 'test_crop.jpg', 100, 100, 300, 300)
在test.jpg中裁剪出左上角坐标为(100,100),右下角坐标为(300,300)的区域,并保存为test_crop.jpg。
以上就是使用PIL进行图像处理的两个实例代码了,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python使用pil进行图像处理(等比例压缩、裁剪)实例代码 - Python技术站