Python使用PIL实现图片批量旋转、缩放与裁剪
本文介绍如何利用Python的PIL库对指定目录下的图片进行批量处理,包括旋转90度、调整尺寸以及按坐标裁剪。通过遍历文件并调用Image模块的方法,实现自动化图片格式转换与尺寸统一,适用于需要批量处理大量图像文件的场景。
环境准备与依赖
实现图片处理功能需要安装Python环境及PIL库(Pillow)。代码中使用了Image模块来打开、处理并保存图像文件。确保目标目录下存在符合命名规则的图片文件(如1.jpg至23.jpg),并准备好输入与输出目录路径。
图片旋转处理
旋转操作主要用于调整图片的方向。以下代码演示了如何将图片逆时针旋转90度,并保存到新路径。处理逻辑包括打开图像、获取原始尺寸、执行旋转操作以及保存结果。
# -*-coding:utf-8-*-
from PIL import Image
def rotateimg(inputimg,outimg):
im = Image.open(inputimg)
# 图片的宽度和高度
img_size = im.size
print("图片宽度和高度分别是{}".format(img_size))
# 旋转图片
# 左旋转90度
im = im.rotate(90)
print("图片宽度和高度分别是{}".format(im.size))
im.save(outimg)
if __name__ == "__main__":
#
inputpath = "D:/test/tmp/shuibiao/"
outpath = "D:/test/tmp/img/"
for i in range(1,24):
tmpin = inputpath+str(i)+'.jpg'
tmpout = outpath+str(i)+'.jpg'
rotateimg(tmpin, tmpout)
print('成功旋转第'+str(i)+'张图片')图片缩放处理
缩放功能用于统一图片尺寸。代码中指定了目标尺寸为宽260像素、高180像素,并使用Image.ANTIALIAS参数以保证缩放后的图像质量。遍历指定目录下的图片,依次执行缩放并保存。
# -*-coding:utf-8-*-
from PIL import Image
def resizeimg(inputimg,outimg):
img1 = Image.open(inputimg)
out=img1.resize((260, 180),Image.ANTIALIAS)
print("图片宽度和高度分别是{}".format(out.size))
out.save(outimg)
if __name__ == "__main__":
#
inputpath = "D:/test/tmp/img/"
outpath = "D:/test/tmp/img_1/"
for i in range(1, 24):
tmpin = inputpath + str(i) + '.jpg'
tmpout = outpath + str(i) + '.jpg'
resizeimg(tmpin, tmpout)
print('成功放缩第' + str(i) + '张图片')图片裁剪处理
裁剪操作允许从原图中截取特定区域。通过定义左上角坐标(x, y)以及裁剪框的宽高w, h,计算右下角坐标并执行crop方法。示例中截取了宽260、高60的区域,起始位置为(0, 60)。
# -*-coding:utf-8-*-
from PIL import Image
def cropimg(inputimg,outimg):
im = Image.open(inputimg)
# 图片的宽度和高度
img_size = im.size
print("图片宽度和高度分别是{}".format(img_size))
'''
裁剪:传入一个元组作为参数
元组里的元素分别是:(距离图片左边界距离x, 距离图片上边界距离y,距离图片左边界距离+裁剪框宽度x+w,距离图片上边界距离+裁剪框高度y+h)
'''
# 截取图片中一块宽和高都是250的
x = 0
y = 60
w = 260
h = 60
region = im.crop((x, y, x + w, y + h))
region.save(outimg)
if __name__ == "__main__":
inputpath = "D:/test/tmp/img_1/"
outpath = "D:/test/tmp/img_2/"
for i in range(1, 24):
tmpin = inputpath + str(i) + '.jpg'
tmpout = outpath + str(i) + '.jpg'
cropimg(tmpin, tmpout)
print('成功裁剪第' + str(i) + '张图片')
总结
通过上述三个示例,展示了如何使用Python的PIL库完成图片的旋转、缩放和裁剪。这些操作可以组合使用,以满足不同的图像处理需求。在实际应用中,请根据实际文件路径和图像规格调整代码中的参数。
以上就是Python实现对图片进行旋转,放缩,裁剪的功能的详细内容,更多关于Python图片处理、PIL库使用技巧的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













