尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
影刀RPA 图片批量压缩与格式转换:处理大量素材
title: “影刀RPA 图片批量压缩与格式转换处理大量素材”date: 2026-07-01author: 林焱影刀RPA 图片批量压缩与格式转换处理大量素材电商运营有几百张产品图需要统一压缩到500KB以内、统一转成JPEG、统一加水印、统一改尺寸……这类批量处理任务用影刀Pillow分分钟搞定效果比PS批处理更灵活。什么情况用什么适合批量处理的场景电商主图/详情图统一规格尺寸、格式、大小新闻稿图片批量压缩后发邮件用户上传图片自动压缩节省存储素材图片统一加品牌水印不适合的场景需要专业修图色彩矫正、抠图还是用PS只有几张图手动处理更快怎么做准备工作安装依赖【影刀操作】添加【Python】指令importsubprocess subprocess.run([pip,install,Pillow],capture_outputTrue)print(Pillow安装完成)方法1批量压缩图片到指定大小【影刀操作】添加【Python】指令fromPILimportImageimportosdefcompress_image(input_path,output_path,target_size_kb500,min_quality30): 压缩图片到指定大小KB target_size_kb: 目标大小KB min_quality: 最低质量避免压缩过度 imgImage.open(input_path)# 如果是PNG或其他格式转为RGBJPEG不支持透明通道ifimg.modein(RGBA,P,LA):# 透明背景换成白色backgroundImage.new(RGB,img.size,(255,255,255))ifimg.modeRGBA:background.paste(img,maskimg.split()[3])else:background.paste(img)imgbackgroundelifimg.mode!RGB:imgimg.convert(RGB)# 检查原始大小original_sizeos.path.getsize(input_path)/1024iforiginal_sizetarget_size_kb:# 已经够小只做格式转换img.save(output_path,JPEG,quality85,optimizeTrue)print(f无需压缩{os.path.basename(input_path)}{original_size:.0f}KB)return# 二分法找到合适的quality值quality_low,quality_highmin_quality,95best_outputNonewhilequality_lowquality_high:quality(quality_lowquality_high)//2importiobufferio.BytesIO()img.save(buffer,JPEG,qualityquality,optimizeTrue)size_kbbuffer.tell()/1024ifsize_kbtarget_size_kb:best_outputbuffer.getvalue()quality_lowquality1# 尝试更高质量else:quality_highquality-1# 继续压缩ifbest_output:withopen(output_path,wb)asf:f.write(best_output)final_sizeos.path.getsize(output_path)/1024print(f压缩完成{os.path.basename(input_path)}{original_size:.0f}KB →{final_size:.0f}KB)else:# 质量已经降到最低直接保存img.save(output_path,JPEG,qualitymin_quality,optimizeTrue)print(f压缩至最低质量{os.path.basename(input_path)})# 批量处理input_dirrC:\原始图片output_dirrC:\压缩图片os.makedirs(output_dir,exist_okTrue)image_exts{.jpg,.jpeg,.png,.bmp,.tiff,.webp}processed0forfilenameinos.listdir(input_dir):extos.path.splitext(filename)[1].lower()ifextnotinimage_exts:continueinput_pathos.path.join(input_dir,filename)# 输出统一用jpg后缀output_nameos.path.splitext(filename)[0].jpgoutput_pathos.path.join(output_dir,output_name)compress_image(input_path,output_path,target_size_kb500)processed1print(f\n处理完成共处理{processed}张图片)yda.set_variable(processed_count,processed)方法2批量调整图片尺寸【影刀操作】添加【Python】指令fromPILimportImageimportosdefresize_image(input_path,output_path,target_width800,target_heightNone,modefit,fill_color(255,255,255)): mode: fit - 等比缩放放在目标尺寸内不裁剪可能有留白 fill - 裁剪到精确尺寸 stretch - 强制拉伸到目标尺寸 imgImage.open(input_path)orig_w,orig_himg.sizeiftarget_heightisNone:# 只指定宽度等比缩放ratiotarget_width/orig_w target_heightint(orig_h*ratio)ifmodefit:img.thumbnail((target_width,target_height),Image.LANCZOS)# 居中放置周围填充背景色backgroundImage.new(RGB,(target_width,target_height),fill_color)offset((target_width-img.width)//2,(target_height-img.height)//2)background.paste(img,offset)resultbackgroundelifmodefill:# 先缩放到覆盖目标尺寸再中心裁剪ratiomax(target_width/orig_w,target_height/orig_h)new_wint(orig_w*ratio)new_hint(orig_h*ratio)imgimg.resize((new_w,new_h),Image.LANCZOS)# 中心裁剪left(new_w-target_width)//2top(new_h-target_height)//2resultimg.crop((left,top,lefttarget_width,toptarget_height))else:# stretchresultimg.resize((target_width,target_height),Image.LANCZOS)ifresult.mode!RGB:resultresult.convert(RGB)result.save(output_path,JPEG,quality90,optimizeTrue)# 批量处理电商主图统一800x800input_dirrC:\商品图片\原图output_dirrC:\商品图片\800x800os.makedirs(output_dir,exist_okTrue)forfilenameinos.listdir(input_dir):iffilename.lower().endswith((.jpg,.jpeg,.png)):input_pathos.path.join(input_dir,filename)output_pathos.path.join(output_dir,os.path.splitext(filename)[0].jpg)resize_image(input_path,output_path,800,800,modefill)print(f处理{filename})方法3批量格式转换【影刀操作】fromPILimportImageimportosdefconvert_format(input_dir,output_dir,from_formatpng,to_formatjpg,quality90):批量转换格式os.makedirs(output_dir,exist_okTrue)count0forfilenameinos.listdir(input_dir):ifnotfilename.lower().endswith(.from_format):continueinput_pathos.path.join(input_dir,filename)output_filenameos.path.splitext(filename)[0].to_format output_pathos.path.join(output_dir,output_filename)imgImage.open(input_path)ifto_format.lower()in(jpg,jpeg)andimg.modein(RGBA,P):bgImage.new(RGB,img.size,(255,255,255))ifimg.modeRGBA:bg.paste(img,maskimg.split()[3])else:bg.paste(img)imgbg save_kwargs{quality:quality,optimize:True}ifto_format.lower()in(jpg,jpeg)else{}img.save(output_path,**save_kwargs)count1print(f格式转换完成{count}张{from_format}→{to_format})returncount# PNG批量转JPGconvert_format(rC:\图片\PNG,rC:\图片\JPG,png,jpg)有什么坑坑1PNG透明背景变黑色PNG图有Alpha透明通道直接保存JPEG时透明区域变成黑色而非白色。解决方法保存前先把透明通道合并到白色背景代码里已处理。坑2CMYK格式的图片无法处理印刷厂给的图片是CMYK颜色模式Pillow处理某些CMYK图会出错。解决方法img img.convert(RGB)先转成RGB。坑3图片旋转方向不对手机拍的照片有EXIF旋转信息Pillow默认不处理导致某些图片显示方向不对。解决方法fromPILimportImageOps imgImageOps.exif_transpose(img)# 自动根据EXIF旋转坑4文件名有中文导致报错某些系统路径里的中文文件名处理有问题。解决方法用pathlib.Path代替字符串路径frompathlibimportPathforpinPath(input_dir).glob(*.png):imgImage.open(str(p))总结图片批量处理是Pillow最擅长的场景。压缩用二分法找quality值、调整尺寸区分fit/fill/stretch模式、格式转换注意RGBA→RGB。三个技术点搞清楚几百张图片的处理任务几分钟搞定。
RELATED

相关推荐

PIC18F47K40与MCP3202实现锂电池电压均衡方案

PIC18F47K40与MCP3202实现锂电池电压均衡方案

1. 项目背景与核心需求在锂离子电池组应用中,电压不平衡问题就像一群跑步运动员中有人掉队一样令人头疼。当多个电池串联工作时,由于制造工艺差异、温度分布不均或老化程度不同,各单体电池的充电状态会出现明显偏差。这种不平衡如果不及时纠正…

📅 2026/9/14 16:26:43
TongWeb7生产环境安全加固实战:从验证码到三员分立

TongWeb7生产环境安全加固实战:从验证码到三员分立

1. 项目概述:为什么生产环境下的TongWeb7必须做安全加固?最近在帮一个金融客户做中间件迁移和上生产前的安全合规检查,项目核心就是把应用从旧版本的WebLogic迁移到国产的TongWeb7上。客户的安全团队提了一堆要求,从最基础的控制台…

📅 2026/10/24 11:22:46
系统架构师软考:3类图论应用题(最大流/最小生成树/最短路径)解题策略对比

系统架构师软考:3类图论应用题(最大流/最小生成树/最短路径)解题策略对比

系统架构师软考:3类图论应用题(最大流/最小生成树/最短路径)解题策略对比在系统架构设计师的软考高级认证中,图论应用题一直是考察重点和难点。最大流、最小生成树和最短路径这三类问题看似相似,实则各有其独特的解题思…

📅 2026/9/14 16:26:17
MORE NEWS

更多资讯

📰

姜堰哪里可以办电工证全国通用,工地太忙怎么破?

姜堰哪里可以办电工证全国通用,工地太忙怎么破? 工地太忙根本没时间复习考试,这种事儿我见过太多了。尤其是姜堰这边的工地,工期紧、任务重,电工证考试又不能拖,一拖就可能影响整个项目进度,甚至面临停工整顿的风险。关键是, 全国通用…

📰

黄州电工证审证多少钱?怕考不过白交培训费看这篇就够了

黄州电工证审证多少钱?怕考不过白交培训费看这篇就够了 怕考不过白交培训费?黄州电工证审证多少钱?你不是一个人在战斗,很多人都是这样过来的。特别是咱们这种一线施工人员,考证不仅关系到能不能上岗,更关系到钱包里的钱能不能省下来。别急,这篇文章帮…

📰

工地太忙根本没时间复习考试?考前押题帮你搞定在工地上要什么电工证

工地太忙根本没时间复习考试?考前押题帮你搞定在工地上要什么电工证 工地太忙根本没时间复习考试?特别是像你这样每天在工地上跑来跑去的电工,既要负责线路安装,又要处理突发故障,哪还有心思去准备考试?其实现在市面上有 考前押题…

📰

电工证加粉通过率揭秘:三门峡劳务班组负责人实战经验全公开

电工证加粉通过率揭秘:三门峡劳务班组负责人实战经验全公开 你急需特种作业证才能上岗找工作,却对电工证加粉考试一无所知?别急,这篇就是为你量身打造的指南。作为三门峡本地劳务班组负责人,我深知特种作业证对工人找工作和企业合规用工的重要性。本文结…

📰

消防电子电工证怎么考多少钱 一文讲透实操考试避坑经验

消防电子电工证怎么考多少钱 一文讲透实操考试避坑经验 实操考试心里没底怕挂科,这几乎是所有想考消防电子电工证的人心里的真实想法。尤其是刚入行的周口公路工程从业者,对考试流程、评分标准、通过率、复审周期这些细节一头雾水,光是听别人说“要考实操…

📰

特种工监察部门怎么找官方报名入口?转岗别被中介骗了

特种工监察部门怎么找官方报名入口?转岗别被中介骗了 你是不是也遇到过这种情况?刚拿到特种作业操作证,想换个城市工作,结果发现连报名都搞不清楚,怕被中介骗钱?别急,今天我就用一个真实的案例,带你看清 特种工监察部门 怎么找、 官方报名入口…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬