下面是在Python中使用Pillow改变图像分辨率的完整攻略,过程中包含两条示例说明:
1. 安装 Pillow
Pillow 是 Python 中一个方便使用的图像处理库,安装如下:
pip install pillow
2. 打开图像文件
使用 Pillow 打开一张图像文件:
from PIL import Image
# 打开图像文件
with Image.open('sample.jpg') as img:
# 图像尺寸
print('原始尺寸:', img.size)
# 显示图像
img.show()
其中,sample.jpg
是一张图片文件,可以改成你自己的文件名和路径。
3. 改变图像分辨率
使用 Image.resize()
方法改变图像分辨率,代码如下:
from PIL import Image
# 打开图像文件
with Image.open('sample.jpg') as img:
# 图像尺寸
print('原始尺寸:', img.size)
# 显示图像
img.show()
# 改变图像分辨率
size = (600, 600)
resized_img = img.resize(size)
# 显示新的图像
resized_img.show()
# 新图像尺寸
print('新尺寸:', resized_img.size)
上面的代码将图像的分辨率从原来的大小改为 (600, 600)
。
在这里,我们使用 size
变量来指定新图像的分辨率,官方文档提醒我们,使用 resize 方法时,应该同时指定图像的缩放算法,例如:
resized_img = img.resize(size, resample=Image.LANCZOS)
具体的图像缩放算法可以根据实际需要进行选择。
4. 保存新图像
如果需要保存新图像,可以使用 Image.save()
方法:
from PIL import Image
# 打开图像文件
with Image.open('sample.jpg') as img:
# 改变图像分辨率
size = (600, 600)
resized_img = img.resize(size)
# 保存新图像
resized_img.save('resized.jpg')
注意要指定新图像的文件名,否则会覆盖原始图像。
示例说明
下面给出两个示例:
示例 1. 改变图像分辨率并旋转
from PIL import Image
with Image.open('sample.jpg') as img:
# 改变图像分辨率
size = (600, 600)
resized_img = img.resize(size)
# 旋转图像
rotated_img = resized_img.rotate(90)
# 显示和保存新图像
rotated_img.show()
rotated_img.save('resized_and_rotated.jpg')
示例 2. 获取原始图像分辨率
from PIL import Image
with Image.open('sample.jpg') as img:
# 原始图像分辨率
print('原始分辨率:', img.info['dpi'])
# 改变图像分辨率
size = (600, 600)
resized_img = img.resize(size)
# 新图像分辨率
print('新分辨率:', resized_img.info['dpi'])
注意,要获取分辨率信息,需要在图像对象(如 img
或 resized_img
)中访问 info['dpi']
属性。