Python简易处理图片代码

2022/4/24 14:12:39

本文主要是介绍Python简易处理图片代码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python简易处理图片代码

python翻转图片代码

代码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('所有图片均已旋转完毕,并存入输出文件夹')

python纵向分割图片代码

# -*- 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



这篇关于Python简易处理图片代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程