- Python Pillow 教程
- Python Pillow - 首页
- Python Pillow - 概述
- Python Pillow - 环境搭建
- 基本图像操作
- Python Pillow - 图像处理
- Python Pillow - 调整图像大小
- Python Pillow - 翻转和旋转图像
- Python Pillow - 裁剪图像
- Python Pillow - 为图像添加边框
- Python Pillow - 识别图像文件
- Python Pillow - 合并图像
- Python Pillow - 剪切和粘贴图像
- Python Pillow - 图像滚动
- Python Pillow - 在图像上添加文字
- Python Pillow - ImageDraw 模块
- Python Pillow - 合并两张图像
- Python Pillow - 创建缩略图
- Python Pillow - 创建水印
- Python Pillow - 图像序列
- Python Pillow 颜色转换
- Python Pillow - 图像上的颜色
- Python Pillow - 创建彩色图像
- Python Pillow - 将颜色字符串转换为 RGB 颜色值
- Python Pillow - 将颜色字符串转换为灰度值
- Python Pillow - 通过更改像素值来更改颜色
- 图像处理
- Python Pillow - 降噪
- Python Pillow - 更改图像模式
- Python Pillow - 图像合成
- Python Pillow - 使用 Alpha 通道
- Python Pillow - 应用透视变换
- 图像滤镜
- Python Pillow - 为图像添加滤镜
- Python Pillow - 卷积滤镜
- Python Pillow - 模糊图像
- Python Pillow - 边缘检测
- Python Pillow - 浮雕图像
- Python Pillow - 增强边缘
- Python Pillow - 锐化蒙版滤镜
- 图像增强和校正
- Python Pillow - 增强对比度
- Python Pillow - 增强锐度
- Python Pillow - 增强颜色
- Python Pillow - 校正色彩平衡
- Python Pillow - 去噪
- 图像分析
- Python Pillow - 提取图像元数据
- Python Pillow - 识别颜色
- 高级主题
- Python Pillow - 创建动画 GIF
- Python Pillow - 批量处理图像
- Python Pillow - 转换图像文件格式
- Python Pillow - 为图像添加填充
- Python Pillow - 颜色反转
- Python Pillow 与 Numpy 的机器学习
- Python Pillow 与 Tkinter BitmapImage 和 PhotoImage 对象
- Image 模块
- Python Pillow - 图像混合
- Python Pillow 有用资源
- Python Pillow - 快速指南
- Python Pillow - 函数参考
- Python Pillow - 有用资源
- Python Pillow - 讨论
Python Pillow - 创建缩略图
缩略图通常用于显示图像预览或原始图像的较小表示。它们对于优化网页和提高图像密集型应用程序的加载速度非常有用。Pillow 提供了一种方便的方法来从图像生成缩略图。以下是一些关于 Pillow 中缩略图的关键点。
保持纵横比 - 创建缩略图时,Pillow 会保持原始图像的纵横比。这意味着缩略图的宽度和高度会根据原始图像成比例地调整,因此图像不会显得变形。
减小文件大小 - 与原始图像相比,缩略图的大小更小。这种尺寸减小对于优化网页或在受限空间(例如画廊或列表中)显示图像非常有用。
便捷性 - 它简化了创建缩略图的过程。它在调整图像大小的同时保持纵横比,并提供了一种简单的方法将调整大小的图像保存到文件中。
质量控制 - 我们可以使用各种参数来控制缩略图的质量,例如大小、调整大小的滤镜类型以及如果我们以 JPEG 等压缩格式保存缩略图的压缩设置。
在 Pillow 中,我们有一个名为 thumbnail() 的方法,它允许我们为缩略图图像指定尺寸和形状。我们可以创建两种不同形状的缩略图,一种是正方形,另一种是圆形。
创建正方形缩略图
在本节中,我们将了解如何使用 Pillow 库的 thumbnail() 方法创建正方形缩略图。
thumbnail() 方法的语法和参数如下。
image.thumbnail(size, resample=Image.BOX)
其中,
size (必需) - 此参数将缩略图的尺寸(即宽度和高度)指定为一个元组 (width, height)。我们也可以只指定一个维度,另一个维度将自动计算以保持纵横比。
resample (可选) - 此参数定义在调整图像大小时要使用的重采样滤镜。它可以是以下常量之一:
Image.NEAREST (默认) - 最近邻采样。
Image.BOX - 箱式采样,类似于最近邻,但通常会产生略微平滑的结果。
Image.BILINEAR - 双线性插值。
Image.HAMMING - 汉明窗 sinc 插值。
Image.BICUBIC - 双三次插值。
Image.LANCZOS - Lanczos 窗 sinc 插值。
示例
在这个例子中,我们通过将缩略图的宽度和高度参数指定给 resize 参数,使用 thumbnail() 方法创建正方形缩略图。
from PIL import Image #Open the image image = Image.open("Images/tutorialspoint.png") #Define the thumbnail size as a tuple (width, height) thumbnail_size = (200, 200) #Create a thumbnail image.thumbnail(thumbnail_size, resample = Image.BOX ) image.save("output Image/square_thumbnail_image.png") image.show()
输出
示例
这是另一个使用 thumbnail() 模块创建宽度为 100,高度为 100 的正方形缩略图的示例。
from PIL import Image #Open the image image = Image.open("Images/butterfly.jpg") #Define the thumbnail size as a tuple (width, height) thumbnail_size = (100, 100) #Create a thumbnail image.thumbnail(thumbnail_size, resample = Image.Resampling.BILINEAR) image.save("output Image/square_thumbnail_image.png") image.show()
输出
创建圆形缩略图
在上一节中,我们了解了什么是缩略图以及如何使用 Pillow 的 thumbnail() 方法创建正方形缩略图。现在,我们将了解圆形缩略图的创建。圆形缩略图意味着缩略图将呈圆形。
创建圆形缩略图的 thumbnail() 方法的语法和参数与正方形缩略图相同。
以下是创建圆形缩略图的步骤。
从 Pillow 库导入必要的模块 Image 和 ImageDraw。
使用 Image.open() 方法加载原始图像。
使用 size 属性确定原始图像的尺寸。
使用 ImageDraw.Draw() 方法从蒙版图像创建一个新对象。
使用 draw.ellipse() 方法在蒙版图像上绘制一个椭圆。将图像居中到椭圆的中心。
使用 Image.new() 方法创建一个与原始图像尺寸相同,背景透明的新图像。
使用 save() 方法保存圆形缩略图图像。
使用 show() 方法显示创建的圆形缩略图图像。
示例
在这个例子中,我们使用 Pillow 库的 thumbnail() 方法创建圆形缩略图。
#importing the required libraries from PIL import Image, ImageDraw #open image file img = Image.open('Images/butterfly.jpg') #resize image img.thumbnail((2000, 2000)) #create circular mask mask = Image.new('L', img.size, 0) draw = ImageDraw.Draw(mask) draw.ellipse((center[0] - radius, center[1] - radius, center[0] + radius, center[1] + radius), fill = 255) #apply mask to image result = Image.new('RGBA', img.size, (255, 255, 255, 0)) result.paste(img, (0, 0), mask) #save circular thumbnail image result.save('OutputImages/circular_thumbnail1.png') #showing the image using show() function result.show()