使用Python批量旋转,镜像图片

前言

当我们进行大量图像处理时,经常需要旋转或镜像图像。但一张张处理图片费神又费力,有什么好的办法可以帮助我们快速搞定这个问题呢?这时候我们可以写个简单的python程序来搞定它!~

在Python中,我们可以使用Pillow库(Python Imaging Library)进行图像处理。Pillow库提供了很多函数和类,使得图像旋转和镜像变得容易。

本文将会以一下三张图片为例,在每一部分将会简单介绍函数后附上批量处理图片的代码,零基础的小伙伴也可以轻松使用嗷~


〇、准备工作,PIL库安装

一、图像旋转

二、图片镜像


〇、准备工作,PIL库安装

可以通过以下命令在Python中安装Pillow库(它是Python Imaging Library的分支版本):

pip install Pillow

此外,还可以通过Anaconda或Miniconda等科学计算发行版进行安装。如果你使用Anaconda,可以使用以下命令来安装Pillow库:

conda install pillow

一、图像旋转

对于图像旋转,可以使用Pillow库中的rotate()函数,可以通过指定旋转角度来实现。具体来说,我们可以使用Image.rotate(angle)函数(其中angle为旋转角度,单位为度)。例如,我们想将图像旋转90度,可以这样做:

from PIL import Image

image = Image.open("path/to/image.jpg") # 读取图片,这里要注意图片的格式
rotated_image = image.rotate(90, expand=True) #确定旋转角度

在这个例子中,我们打开了一张图片,然后使用rotate()函数将其旋转了90度。我们可以使用show()函数来查看或是用.save(path)直接保存旋转后的图像:

rotated_image.show() #查看图片

rotated_image.save('rotated_image.jpg') #保存图片

当我们希望可以批量旋转一个文件夹里的图片90°180°270°时,我们可以这么做:

from PIL import Image
import os

# 设置输入和输出目录
input_dir = '/path/to/input/directory/'
output_dir = '/path/to/output/directory/'

# 循环输入目录中的所有JPEG图像
for filename in os.listdir(input_dir):
    #只可以处理jpg和jpeg后缀下的程序,如果你的图片是别的后缀,请直接更改点后的文件格式
    if filename.endswith('.jpg') or filename.endswith('.jpeg'):
        
        # 打开图像
        img = Image.open(os.path.join(input_dir, filename))

        # 旋转图像并保存 这里可以直接添加或删除以选取你需要的旋转角度
        for angle in [90, 180, 270]:
            rotated_img = img.rotate(angle, expand=True)
            rotated_img.save(os.path.join(output_dir, f'{angle}_{filename}'))

成品如下~!


二、图片镜像

对于图像镜像,可以使用Pillow库中的transpose()函数,可以通过指定翻转模式来实现。具体来说,我们可以使用Image.transpose(mode)函数,其中mode为翻转模式,可以为Image.FLIP_LEFT_RIGHT(水平翻转)或Image.FLIP_TOP_BOTTOM(垂直翻转)。例如,如果我们想将图像水平翻转,可以这样做:

from PIL import Image

image = Image.open("path/to/image.jpg")
mirrored_image = image.transpose(Image.FLIP_LEFT_RIGHT)

在这个例子中,我们打开了一张图像,然后使用transpose()函数将其水平翻转。我们可以使用show()或是用.save(path)函数来查看或保存翻转后的图像:

mirrored_image.show()
mirrored_image.save('mirrored_image.jpg')

当我们希望可以批量水平和垂直镜像一个文件夹里的图片时,我们可以这么做:

from PIL import Image
import os

# 设置输入和输出目录
input_dir = '/path/to/input/directory/'
output_dir = '/path/to/output/directory/'

# 循环输入目录中的所有JPEG图像, 这里如果你是别的类型格式图片,直接更改点后图片类型即可
for filename in os.listdir(input_dir):
    if filename.endswith('.jpg') or filename.endswith('.jpeg'):
        
        # 打开图像
        img = Image.open(os.path.join(input_dir, filename))

        # 水平镜像并保存
        mirrored_img = img.transpose(Image.FLIP_LEFT_RIGHT)
        mirrored_img.save(os.path.join(output_dir, f'horiz_{filename}'))

        # 垂直镜像并保存
        mirrored_img = img.transpose(Image.FLIP_TOP_BOTTOM)
        mirrored_img.save(os.path.join(output_dir, f'vert_{filename}'))

成品如下~!

  • 16
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
图片批量裁剪器(精华版)是 一款功能丰富、实用、应有尽有的图片/视频批量裁剪、水印、转换、更名,以及其他处理的专业工具!批量处理时不低于5万个文件。 以管理员身份和兼容xp3模式下运行,可支持win7,win8,win10,64位。 图片批量裁剪器(精华版)功能 1. 支持常见图片类型如bmp,jpg,tif,gif,png,支持部分非常见图片类型,如PSD,PCX,ICO,Pdf,动态Gif等等;支持对大多数常见的音频/视频文件格式的裁剪、转换、水印、分割、合并等; 2.提供对图片文件的丰富多彩实用的各种批量裁剪模式,如相对、绝对、固定、大小、等分/非等分分切、分隔、同比/非同比缩放、拼接/无缝拼合、贴边等等几百种裁剪处理功能; 支持圆角矩形/椭圆形/圆形/任意角度裁剪,支持自定义圆角矩形半径裁剪; 3.其他更丰富的裁剪功能,请参见主页说明或程序,比如:提取图片上的文字并保存先裁剪后加水印一步到位忽略处理过的文件夹手动指定裁剪区域多裁剪区域裁剪打印二维码图片转Pdf 过滤小图或缩略图 AB文件夹配对拼合 …… 内置其他功能列表: 1.图片烙制水印(文字水印,图片水印,淘宝卖家专用水印,以及其他上百种水印功能模式供选择,特别如以拍摄日期作为文字水印,递增数字水印等等,批量制卡证等) 2.图片旋转及格式转换(特别功能如智能扳正) 3.图片亮度/对比度调整 4.图片压缩(特色功能如保留Exif信息的压缩) 5.定制图片大小/尺寸(特色功能如能按指定的文件大小压缩,比如压缩到120kb左右,仅压缩大图,小图忽略压缩等) 6.图片像素筛查(从海量图片中筛查出满足条件的图片供删除、移动、复制、更名等) 7.(图片)文件时间属性修改(比如更改拍摄日期,没有做不到只有想不到) 8.图像综合处理 9.(图片)文件批量更名(强大丰富的多种文件批量更名功能) 10.文件随机/顺序/定时抽取分发(将海量文件复制或移动到指定的文件夹中) 11.证件照批量更换背景颜色 12.色块/色条魔术棒裁剪,颜色替换 13.音视频裁剪/分割/合并/转换/加水印/录音/录像 14.批量替换图片中的图片或文字 15.图像批量组合排版 16.证件制作排版(广告公司实用) 17.Jpg图片Exif信息编辑器 18.重复或相似图片批量查找 19.相对/绝对/固定裁剪简易兼容备用版 20.Jpg转视频avi或其他(影楼后期制作DV工具) 21.图片批量浏览挑拣器(影楼客户自选照片实用) 22.图片批量叠加/混合 23.视频批量加密(特色功能如用户可自行在线找回播放密码,一机一码,一视频一码) 24.账号、密码批量管理小秘书(管理你各种账号密码,完全安全加密) 25.动态Gif图片裁剪、水印;图片压制成动态Gif(按时间轴裁剪,裁剪后的gif仍然是动画模式) 26.音频片段截取助手 27.广告喷绘大图专用分切器(喷绘行业专用) 图片批量水印裁剪器 v6.0.20161008精华版更新内容: 1.新增动态Gif水印区域批量涂抹模糊,或者图片水印区域批量涂抹功能; 2.修正水印添加模块中,还原或重设DPI功能时失效异常的问题; 3.在水印批量添加模块中,新增还原原图DPI以及转为CMYK印刷颜色模式的新功能; 4.新增批量生成二维码图片的功能; 5.新增图片裁剪/缩放/格式转换/添加水印等单张综合处理功能模块; 6.修正先选择后裁剪功能实现的问题; 7.新增批量对动态Gif文件指定水印区域模糊化处理功能; 8.新增定时对指定的目录中的图片挂机无人值守自动裁剪功能,忽略已处理过的图片文件; 9.新增纯文字水印添加功能模块; 10.新增学生证件照排版和学生胸卡排版制作打印功能模块; 11.改进修正Jpg系列图片转视频功能,并新增同时给转换后的视频叠加音频的功能; 12.修正改进动态Gif裁剪、水印功能模块; 13.改进跟图片OCR文字识别的有关问题和功能; 14.新增备用下载服务器和网络登录版; 15.修正精确去片头片尾功能; 16.修正某些音频视频文件播放时间不足一秒时无法加载入文件列表的异常; 17.修正媒体批量合并功能模块全部失效的问题; 18.新增以文件夹名作为动态文字水印的功能。 图片批量裁剪器(精华版)截图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值