使用 Python Pillow 处理图像数据类型


Python Pillow 是一个用于处理 Python 中图像数据的有效库。用户可以使用它来打开、编辑和保存各种格式的图像。您可以使用 Pillow 打开图像,访问其属性(如大小和格式),然后显示或保存修改后的版本。您可以调整大小、旋转图像、裁剪、添加滤镜和增强颜色。Pillow 支持各种图像格式,使其成为图像处理应用的理想选择。无论您需要进行简单的图像调整还是复杂的转换,Pillow 都提供用户友好的界面和全面的文档,以满足您所有的图像处理需求。

安装命令

在使用 Python Pillow 库之前,您需要在您的计算机系统上安装它。可以使用 Python 的包管理器 pip 来执行此操作,运行以下命令:

pip install Pillow

Pillow 库的功能

  • 图像打开和保存:Pillow 可以打开各种格式的图像,包括 JPEG、PNG、GIF 和 BMP,并可以将图像保存为多种格式。

  • 图像操作:它提供各种图像操作功能,包括裁剪、翻转、旋转、调整大小和更改颜色模式。

  • 图像滤镜:Pillow 支持各种图像滤镜,包括边缘增强、模糊和锐化。

  • 图像增强:它允许增强视觉属性,如锐度、对比度、色彩平衡和亮度。

  • 图像绘制:Pillow 支持在图像上绘制,包括添加文本、线条、形状和水印。

  • 图像元数据:可以访问和编辑图像元数据,如 Exif 数据。

  • 图像格式:Pillow 支持各种图像格式,确保与不同文件类型的互操作性。

  • 图像数据分析:Pillow 允许用户访问图像的像素数据,以便分析或修改它。

  • 图像变换:Pillow 支持仿射变换、透视变换和其他几何变换。

  • 颜色操作:它提供颜色空间的操作和转换。

  • 图像序列:Pillow 可以使用动画图像作为图像序列,例如 GIF。

基本方法

安装 Pillow:确保您的 Python 环境已安装 Pillow。如果您尚未安装,请使用以下代码安装它:

pip install Pillow

导入 Pillow:从 Pillow 导入处理图像所需的模块。

from PIL import Image, ImageFilter, ImageEnhance, ImageDraw

打开图像:使用 Image.open() 函数打开图像文件。

image = Image.open('path/to/image.jpg')

显示图像(可选):使用 show() 函数显示打开的图像。

image.show()

访问图像属性:您可以访问图像的各种属性,包括其大小和格式。

width, height = image.size
image_format = image.format

执行图像操作:使用 Pillow 的各种函数来修改图像以执行图像操作。例如,图像缩放、旋转、滤镜和颜色增强。

new_width, new_height = 200, 150
resized_image = image.resize((new_width, new_height))

angle = 45
rotated_image = image.rotate(angle)

blurred_image = image.filter(ImageFilter.BLUR)

enhancer = ImageEnhance.Color(image)
enhanced_image = enhancer.enhance(1.5)

保存图像:在编辑图像后,使用 save() 函数将其保存到新文件。

resized_image.save('path/to/resized_image.jpg')

图像绘制(可选):使用 Pillow 的 ImageDraw 模块在图像上添加绘制。

draw = ImageDraw.Draw(image)
draw.text((50, 50), "Hello, Pillow!", fill=(255, 0, 0))

关闭图像(可选):处理后,最好关闭图像。

resized_image.save('path/to/resized_image.jpg')

图像对象的属性

  • size() 方法

  • mode() 方法

  • format() 方法

  • filename() 方法

  • width() 方法

  • height() 方法

size() 方法

算法

  • 接收图像对象作为输入。

  • 使用图像对象的“size”属性获取图像的宽度和高度(以像素为单位)。

  • 将宽度和高度作为元组返回。

示例

from PIL import Image

image985 = Image.open('path/to/imageToUpload.jpg')

width, height = get_image_size(image985)

print(f"Image width: {width} pixels")
print(f"Image height: {height} pixels")

输出

Image width: 800 pixels
Image height: 600 pixels

mode() 方法

算法

  • 接收图像对象作为输入。

  • 使用图像对象的“mode”属性获取图像的颜色模式。

  • 将颜色模式作为字符串返回。

示例

from PIL import Image

image678 = Image.open('path/to/imageToUpload.jpg')

color_mode = get_image_mode(image678)
print(f"Image color mode: {color_mode}")

输出

Image color mode: RGB

format() 方法

算法

  • 接收图像对象作为输入。

  • 使用图像对象的`format`属性获取图像的格式。

  • 将格式作为字符串返回。

示例

from PIL import Image

image66 = Image.open('path/to/imageToUpload.jpg')

imageFormat = get_image_format(image66)

print(f"Image format: {imageFormat}")

输出

Image format: JPEG

filename() 方法

算法

  • 接收图像对象和文件名作为输入。

  • 在图像对象上设置自定义属性“filename”并存储文件名。

  • 返回带有自定义属性的图像对象。

示例

image22 = open_image_with_filename('path/to/imageToUpload.jpg')

if hasattr(image22, 'filename'):
   print(f"Image filename: {image22.filename}")
else:
   print("Filename attribute not available for this image.")

输出

Image filename: path/to/image.jpg

width() 方法

算法

  • 接收图像对象作为输入。

  • 使用图像对象的“width”属性获取图像的宽度(以像素为单位)。

  • 将宽度作为整数返回。

示例

from PIL import Image

image121 = Image.open('path/to/imageToUpload.jpg')

width = get_image_width(image121)

print(f"Image width: {width} pixels")

输出

Image width: 800 pixels

height() 方法

算法

  • 接收图像对象作为输入。

  • 使用图像对象的“height”属性获取图像的高度(以像素为单位)。

  • 将高度作为整数返回。

示例

from PIL import Image

image2 = Image.open('path/to/imageToUpload.jpg')

height = get_image_height(image2)

print(f"Image height: {height} pixels")

输出

Image height: 600 pixels

结论

总之,使用 Pillow 模块在 Python 中处理图像数据提供了一种灵活的方法来处理和修改图像。除了以各种格式打开和保存图像外,Pillow 还提供广泛的功能,包括执行复杂的操作,如调整大小、旋转、滤镜和颜色增强。通过访问像素数据和应用变换,可以实现自定义图像修改和计算机视觉任务。对元数据和动画图像的支持也使得管理各种类型的视觉数据成为可能。Pillow 易于使用且拥有广泛的文档,因此成为 Python 开发人员处理图像的流行选择。无论是一个简单的调整大小操作还是复杂的图像分析,Pillow 的强大功能集都能够让用户有效且创造性地管理图像数据。

更新于: 2023年8月3日

904 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告