ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python简易处理图片代码

2022-04-24 13:31:50  阅读:206  来源: 互联网

标签:name img Python 代码 list 简易 im path image


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

标签:name,img,Python,代码,list,简易,im,path,image
来源: https://www.cnblogs.com/kxqblog/p/16185373.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有