代码1:(旋转单一图片)
# -*- coding:utf8 -*- from PIL import Image def change_photos(head_name, photo_path): path = 'C:\\Users\\username\\Desktop\\test\\' #保存图片路径,可自行定义 im = Image.open(photo_path) #打开图片路径 im_rotate = im.rotate(-90, expand=1) im_rotate.save(path + head_name + '.jpg') change_photos("a" , 'C:\\Users\\username\\Desktop\\test\\save__abc.jpg__2.png')
首先导入Image库
im = Image.open(photo_path)
photo_path是图片的完整路径
im_rotate = im.rotate(-90, expand=1)
表示旋转-90°,expand=1表示原图直接旋转
im_rotate.save(path + head_name)
sava()里面需要完整路径,代表旋转后的图保存在哪里
代码2:(批量旋转)
# -*- coding: UTF-8 -*- import glob import os from PIL import Image output_path = 'output' # 输出文件夹名称 img_list = [] img_list.extend(glob.glob('*.png')) # 所有png图片的路径 img_list.extend(glob.glob('*.jpg')) # 所有jpg图片的路径 print(img_list) # 打印查看是否遍历所有图片 for img_path in img_list: img_name = os.path.splitext(img_path)[0] # 获取不加后缀名的文件名 print(img_name) # 打印查看文件名 im = Image.open(img_path) im = im.convert("RGB") # 把PNG格式转换成的四通道转成RGB的三通道 im_rotate = im.rotate(90, expand=1) # 逆时针旋转90度,expand=1表示原图直接旋转 # 判断输出文件夹是否已存在,不存在则创建。 folder = os.path.exists(output_path) if not folder: os.makedirs(output_path) # 把旋转后的图片存入输出文件夹 im_rotate.save(output_path + '/' + img_name+'_rotated'+'.jpg') print('所有图片均已旋转完毕,并存入输出文件夹')
# -*- coding:utf8 -*- #python install pillow import os from PIL import Image #分割图片 def cut_image(image,count): width, height = image.size #item_width = int(width / count) #item_height = height item_width = width item_height = int(height / count) box_list = [] # (left, upper, right, lower) for i in range(0,count): #保存所有图像 box = (0,i*item_height,item_width,(i+1)*item_height) box_list.append(box) image_list = [image.crop(box) for box in box_list] return image_list #保存分割后的图片 def save_images(image_list,dir_name,file_name): index = 1 for image in image_list: image.save(dir_name+'__'+ file_name+'__' + str(index) + '.png', 'PNG') index += 1 if __name__ == '__main__': rootdir = "C:/Users/username/Desktop" file_name = "abc.jpg" #获取rootdir目录下的文件名清单 #list=os.listdir(rootdir) #for i in range(0,len(list)): #遍历目录下的所有文件夹 #dir_path=os.path.join(rootdir,list[i]) #文件夹的路径 #if os.path.isdir(dir_path): #判断是否为文件夹 #dir_name=list[i] #获得此文件夹的名字 #files=os.listdir(dir_path) #遍历此文件夹下的所有文件 #for file_name in files: file_path=os.path.join(rootdir,file_name) #文件的路径(图片保存的地址) image = Image.open(file_path) #读取一张图片 image_list = cut_image(image,3) #纵向分割图片为三份 save_images(image_list,"save",file_name) #保存分割后的图片
待续
参考博客:
https://www.jianshu.com/p/411321399a2f
https://blog.csdn.net/weixin_39450145/article/details/105129363