Python Pillow – 与图像打交道
在这篇文章中,我们将看到如何在Python中使用Pillow处理图像。我们将讨论基本的操作,如创建、保存、旋转图像。所以让我们开始详细讨论,但首先,让我们看看如何安装Pillow。
安装
要安装这个软件包,在终端键入以下命令。
创建新图像
你可以使用PIL.Image.new()方法创建一个新图像。这个方法以给定的模式和尺寸创建一个新的图像。尺寸是以像素为单位的(宽,高)的四元组。
语法: PIL.Image.new(mode, size, color)
代码:
输出:
打开图像
你可以使用PIL.Image.open()方法打开任何图像。
语法: PIL.Image.open(fp, mode=’r’)
代码:
输出:
获得有关图像的信息
- 获取图像的格式:obj.format方法返回图像文件的格式。
输出:
- 获取图像的大小:obj.size属性提供了图像的大小。它返回一个包含宽度和高度的元组。
输出:
重命名和保存图像
我们可以改变图片的名称、格式,还可以使用image.save()方法重命名。
语法: Image.save(fp, format=None, **params)
代码:
输出:
Before change
After change
裁剪图像
PIL是Python图像库,它为Python解释器提供了图像编辑功能。PIL.Image.crop()方法用于裁剪任何图像的矩形部分。
语法: PIL.Image.crop(box = None)
代码:
输出:
Before rotation
Cropped Image
旋转图像
PIL.Image.Image.rotate()方法用于将给定的图像围绕其中心逆时针旋转一定的度数。
语法: new_object = PIL.Image.Image.rotate(image_object, angle, resample=0, expand=0) OR new_object = image_object.rotate(angle, resample=0, expand=0)
代码:
输出:
Before rotation
After rotation
对图像进行过滤
当前版本的Pillow库提供了下面提到的一组预定义的图像增强过滤器。
- BLUR
- CONTOUR
- DETAIL
- EDGE_ENHANCE
- EDGE_ENHANCE_MORE
- EMBOSS
- FIND_EDGES
- SHARPEN
- SMOOTH
- SMOOTH_MORE
ImageFilter模块包含了一组预定义的过滤器的定义,它们可以与Image.filter()方法一起使用。
语法: Filter(Kernel)
摄取一个内核(预定义或自定义),并通过它摄取图像的每个像素(内核卷积)。
代码:
输出:
Before filter
经过SHARPEN过滤后
在图像上创建一个水印
在这里,你可以通过使用ImageDraw.Draw.text()创建一个水印,该方法在给定的位置绘制字符串。
语法: ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align=”left”)
代码:
输出:
Before Watermark/text
After Watermark/text