您的位置:首页 > 汽车 > 时评 > 宁波企业网站优化报价_ai制作网页教程_泰安网络推广培训_上海优化公司

宁波企业网站优化报价_ai制作网页教程_泰安网络推广培训_上海优化公司

2024/11/16 10:54:52 来源:https://blog.csdn.net/imdeity/article/details/143647115  浏览:    关键词:宁波企业网站优化报价_ai制作网页教程_泰安网络推广培训_上海优化公司
宁波企业网站优化报价_ai制作网页教程_泰安网络推广培训_上海优化公司

本章将详细介绍 Pillow 中常见的图像基础操作,包括图像的打开、保存、裁剪、缩放、格式转换等基本功能。


1.1 打开与保存图像

Pillow 提供了方便的 Image.open()Image.save() 方法来打开和保存图像文件。无论是进行格式转换还是修改图像内容,这些基本操作都是所有图像处理的起点。

打开图像

使用 Image.open() 方法可以打开本地文件系统中的图像文件,并返回一个 Image 对象。

from PIL import Image# 打开图像文件
image = Image.open("example.jpg")# 显示图像
image.show()
保存图像

使用 Image.save() 可以将处理后的图像保存到指定路径。可以在保存时指定不同的图像格式,如 JPEG、PNG 等。

# 保存图像为 PNG 格式
image.save("output_image.png")# 保存图像并调整压缩质量
image.save("output_image.jpg", quality=85)

案例:将一张图像读取后另存为不同格式,并调整图像质量

image = Image.open("example.jpg")# 将图像另存为 PNG 格式
image.save("example_converted.png")# 将图像保存为 JPEG 格式并降低质量
image.save("example_low_quality.jpg", quality=50)

1.2 获取图像信息(格式、大小、模式等)

在处理图像时,了解图像的基础信息如格式、尺寸和色彩模式是非常重要的。Pillow 提供了图像对象的属性来获取这些信息。

图像格式、大小和模式
  • format: 获取图像的格式,如 JPEG、PNG 等。
  • size: 返回一个包含宽度和高度的元组 (width, height)。
  • mode: 获取图像的色彩模式,如 RGB、RGBA、L 等。
# 获取图像信息
print("Format:", image.format)   # 图像格式
print("Size:", image.size)       # 图像尺寸
print("Mode:", image.mode)       # 色彩模式

案例:读取图像信息并判断图像格式

# 打开图像
image = Image.open("example.jpg")# 获取并打印图像信息
format = image.format
width, height = image.size
mode = image.modeprint(f"图像格式: {format}")
print(f"图像尺寸: {width}x{height}")
print(f"色彩模式: {mode}")# 判断是否为 JPEG 格式
if format == "JPEG":print("该图像为 JPEG 格式。")

1.3 图像格式转换

在图像处理中,常常需要将图像从一种格式转换为另一种。Pillow 可以在图像保存时通过指定文件扩展名实现格式转换,或者在 save 方法中直接指定 format 参数。

直接保存为目标格式
# 打开图像
image = Image.open("example.jpg")# 将图像转换并保存为 PNG 格式
image.save("converted_image.png")

案例:批量转换文件夹内的所有 JPEG 图像为 PNG 格式

import os
from PIL import Image# 设置输入与输出文件夹
input_folder = "images/"
output_folder = "converted_images/"# 检查输出文件夹是否存在,不存在则创建
if not os.path.exists(output_folder):os.makedirs(output_folder)# 遍历文件夹内的所有文件
for filename in os.listdir(input_folder):if filename.endswith(".jpg"):# 打开 JPEG 图像image = Image.open(os.path.join(input_folder, filename))# 构造 PNG 输出文件名output_filename = os.path.splitext(filename)[0] + ".png"# 保存为 PNG 格式image.save(os.path.join(output_folder, output_filename))print(f"已将 {filename} 转换为 {output_filename}")

1.4 图像裁剪与缩放

图像裁剪和缩放是两种常见的图像处理操作。Pillow 提供了直观的裁剪和缩放方法,能够轻松实现对图像的局部裁剪和尺寸调整。

图像裁剪

裁剪通过 crop() 方法实现,需要提供一个定义裁剪区域的四元组 (left, upper, right, lower),即裁剪区域的左上角和右下角坐标。

# 定义裁剪区域 (左, 上, 右, 下)
crop_area = (50, 50, 200, 200)# 裁剪图像
cropped_image = image.crop(crop_area)
cropped_image.show()
图像缩放

使用 resize() 方法可以调整图像尺寸。resize() 接收一个新的尺寸元组 (new_width, new_height)

# 调整图像尺寸至 100x100
resized_image = image.resize((100, 100))
resized_image.show()

案例:读取图像并按比例缩放至宽度为 200 像素

# 获取原始图像尺寸
width, height = image.size# 计算缩放比例,保持宽高比
new_width = 200
new_height = int((new_width / width) * height)# 缩放图像
resized_image = image.resize((new_width, new_height))
resized_image.show()

1.5 调整图像尺寸与比例

除了 resize() 方法,Pillow 还提供了 thumbnail() 方法,可保持原始比例自动缩放图像至指定尺寸之内。该方法的特点是不会放大图像尺寸。

使用 thumbnail() 保持比例缩放
# 最大尺寸
max_size = (200, 200)# 缩略图生成
image.thumbnail(max_size)
image.show()

案例:批量生成文件夹内所有图像的缩略图

input_folder = "images/"
output_folder = "thumbnails/"
max_size = (200, 200)# 检查输出文件夹是否存在,不存在则创建
if not os.path.exists(output_folder):os.makedirs(output_folder)# 遍历并生成缩略图
for filename in os.listdir(input_folder):if filename.endswith(".jpg") or filename.endswith(".png"):image = Image.open(os.path.join(input_folder, filename))# 生成缩略图image.thumbnail(max_size)# 保存缩略图thumbnail_filename = f"thumb_{filename}"image.save(os.path.join(output_folder, thumbnail_filename))print(f"已生成 {thumbnail_filename} 的缩略图")

在本章中,我们详细介绍了图像的基础操作,包括图像的打开、保存、信息提取、格式转换、裁剪与缩放等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com