影刀RPA 图片处理基础:裁剪、缩放、水印
影刀RPA 图片处理基础裁剪、缩放、水印署名林焱什么情况用什么RPA采集商品数据时需要批量下载图片并统一尺寸截图后需要裁剪指定区域生成的报表图片需要加水印防盗用。场景推荐库特点基础裁剪/缩放/旋转PillowPIL轻量高效格式支持广批量加水印Pillow文字/图片水印均可图片拼接/合并Pillow多图拼接成一张怎么做一图片裁剪fromPILimportImage imgImage.open(rD:\图片\截图.png)# 裁剪指定区域 (left, upper, right, lower)croppedimg.crop((100,200,800,600))cropped.save(rD:\图片\裁剪后.png)# 裁剪居中区域width,heightimg.size crop_sizemin(width,height)# 取最小边做正方形left(width-crop_size)//2upper(height-crop_size)//2cropped_centerimg.crop((left,upper,leftcrop_size,uppercrop_size))cropped_center.save(rD:\图片\居中裁剪.png)二图片缩放fromPILimportImage imgImage.open(rD:\图片\原图.jpg)# 按固定尺寸缩放resizedimg.resize((800,600))resized.save(rD:\图片\缩放后.jpg)# 按比例缩放缩小到50%width,heightimg.size new_size(int(width*0.5),int(height*0.5))resizedimg.resize(new_size,Image.LANCZOS)# LANCZOS高质量缩放resized.save(rD:\图片\缩小50%.jpg)# 等比缩放限制最大宽度max_width400ifwidthmax_width:ratiomax_width/width new_size(max_width,int(height*ratio))resizedimg.resize(new_size,Image.LANCZOS)resized.save(rD:\图片\限宽400.jpg)三添加文字水印fromPILimportImage,ImageDraw,ImageFont imgImage.open(rD:\图片\产品图.jpg).convert(RGBA)# 创建透明图层overlayImage.new(RGBA,img.size,(0,0,0,0))drawImageDraw.Draw(overlay)# 加载字体指定中文字体路径try:fontImageFont.truetype(C:/Windows/Fonts/simhei.ttf,40)except:fontImageFont.load_default()# 绘制水印文字watermark_text林焱RPA# 半透明白色draw.text((50,50),watermark_text,fill(255,255,255,128),fontfont)# 合并图层resultImage.alpha_composite(img,overlay)result.convert(RGB).save(rD:\图片\加水印.jpg,quality95)四平铺水印fromPILimportImage,ImageDraw,ImageFontimportmath imgImage.open(rD:\图片\产品图.jpg).convert(RGBA)overlayImage.new(RGBA,img.size,(0,0,0,0))drawImageDraw.Draw(overlay)fontImageFont.truetype(C:/Windows/Fonts/simhei.ttf,36)# 平铺水印text内部使用 # 计算文字宽度bboxdraw.textbbox((0,0),text,fontfont)text_widthbbox[2]-bbox[0]text_heightbbox[3]-bbox[1]# 旋转45度的水印angle45foryinrange(-img.height,img.height,150):forxinrange(-img.width,img.width,int(text_width)80):draw.text((x,y),text,fill(255,255,255,60),fontfont)# 旋转整个水印层overlayoverlay.rotate(angle,expandFalse,center(img.width//2,img.height//2))resultImage.alpha_composite(img,overlay)result.convert(RGB).save(rD:\图片\平铺水印.jpg,quality95)五批量处理fromPILimportImageimportosimportglob# yd_input: input_dir, output_dir, target_width, qualityinput_diryd_input.get(input_dir,rD:\图片\原始)output_diryd_input.get(output_dir,rD:\图片\处理后)target_widthyd_input.get(target_width,800)qualityyd_input.get(quality,85)os.makedirs(output_dir,exist_okTrue)filesglob.glob(os.path.join(input_dir,*.jpg))\ glob.glob(os.path.join(input_dir,*.png))\ glob.glob(os.path.join(input_dir,*.jpeg))success0errors[]forfileinfiles:try:imgImage.open(file)# 统一转为RGB去掉alpha通道ifimg.modeRGBA:imgimg.convert(RGB)elifimg.mode!RGB:imgimg.convert(RGB)# 等比缩放width,heightimg.sizeifwidthtarget_width:ratiotarget_width/width new_heightint(height*ratio)imgimg.resize((target_width,new_height),Image.LANCZOS)# 保存basenameos.path.splitext(os.path.basename(file))[0]output_pathos.path.join(output_dir,f{basename}.jpg)img.save(output_path,JPEG,qualityquality)success1exceptExceptionase:errors.append(f{os.path.basename(file)}:{e})yd_output{status:ok,success:success,errors:errors,total:len(files)}有什么坑坑一RGBA图片保存为JPEG报错现象处理PNG透明图片时保存为JPEG报错cannot write mode RGBA as JPEG。原因JPEG不支持透明通道AlphaPNG的RGBA模式直接保存JPEG会报错。解决先转成RGBimgImage.open(透明图.png)# 转成RGB去掉透明通道透明区域变白ifimg.modein(RGBA,LA):backgroundImage.new(RGB,img.size,(255,255,255))background.paste(img,maskimg.split()[-1])# 用alpha通道做maskimgbackground img.save(输出.jpg,JPEG,quality95)# 或者简单转换透明区域变黑# img img.convert(RGB)坑二中文字体路径找不到现象ImageFont.truetype报OSError: cannot open resource。原因字体路径不对或者系统没有该字体。解决用系统中存在的字体加try-catchfromPILimportImageFontdefget_font(size30):获取可用中文字体font_paths[C:/Windows/Fonts/simhei.ttf,# 黑体C:/Windows/Fonts/msyh.ttc,# 微软雅黑C:/Windows/Fonts/simsun.ttc,# 宋体C:/Windows/Fonts/Deng.ttf,# 等线]forpathinfont_paths:try:returnImageFont.truetype(path,size)except:continuereturnImageFont.load_default()# 回退默认字体fontget_font(40)坑三图片旋转后尺寸变化现象旋转图片后发现图片变大了多了黑色边角。原因rotate默认expandFalse不扩展画布旋转后部分内容被裁掉。设expandTrue会扩展画布但多出黑色区域。解决# 方案1不扩展画布保持原尺寸裁掉超出部分rotatedimg.rotate(45,expandFalse)# 方案2扩展画布 填充背景色rotatedimg.rotate(45,expandTrue,fillcolor(255,255,255))# 方案3扩展画布 透明背景需要RGBA模式img_rgbaimg.convert(RGBA)rotatedimg_rgba.rotate(45,expandTrue)# rotated现在是RGBA透明背景坑四批量处理大图片内存溢出现象批量处理100张高分辨率照片每张10MB处理到一半内存不足。原因Pillow打开图片后不主动释放循环中累积。解决用with语句或手动closefromPILimportImageimportgcforfileinfiles:imgImage.open(file)# 处理...img.close()# 显式关闭gc.collect()# 可选强制垃圾回收# 或者用withforfileinfiles:withImage.open(file)asimg:imgimg.copy()# with退出后原文件句柄释放# 处理...

相关新闻

KMS_VL_ALL_AIO:告别激活烦恼,Windows与Office一键智能激活

KMS_VL_ALL_AIO:告别激活烦恼,Windows与Office一键智能激活

KMS_VL_ALL_AIO:告别激活烦恼,Windows与Office一键智能激活 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼?Office…

2026/7/13 1:00:08阅读更多 →
智谱「摸高计划」深度解析:唐杰内部信全文解读,港股AI第一股为何选择在行业最热时死磕AGI?

智谱「摸高计划」深度解析:唐杰内部信全文解读,港股AI第一股为何选择在行业最热时死磕AGI?

一、引言 2026年7月11日,智谱创始人唐杰发布题为《巨浪已来》的全员内部信,宣布启动名为"TouchHigh(摸高)"的两年战略投入计划——不追求短期的应用变现,全力冲击下一代通用人工智能(AGI)。 这封信发出的时间点耐人寻味。 就在同一周,港股大模型"双雄…

2026/7/13 0:55:08阅读更多 →
零基础也能玩转AI:文案、办公、绘画全场景实战速成指南

零基础也能玩转AI:文案、办公、绘画全场景实战速成指南

# 零基础也能玩转AI:文案、办公、绘画全场景实战速成指南## 引言2026年,AI不再是极客的专利,而是职场人、创作者、甚至家庭主妇的日常工具。你是否曾面对空白的文档无从下手?为繁琐的报表熬夜加班?或羡慕那些用AI生成精…

2026/7/13 0:55:08阅读更多 →
PyTorch实战入门:从数据加载到模型训练的端到端工程化指南

PyTorch实战入门:从数据加载到模型训练的端到端工程化指南

1. 这不是又一篇“Hello World”式PyTorch入门——而是一份我带过27个实习生、亲手调过43个CV/NLP小项目后,撕掉所有官方文档重写的实操手记你点开这篇,大概率正站在两个路口:一边是刚学完Python基础,对着import torch发呆&#x…

2026/7/13 3:45:25阅读更多 →
Pandas多维聚合实战:银行级生产分析的正确写法

Pandas多维聚合实战:银行级生产分析的正确写法

1. 项目概述:为什么“多维聚合”不是Pandas进阶技巧,而是业务分析的生存技能我在银行风控部门干了七年,从刚毕业写SQL查数的分析师,到带三个人小团队做反欺诈模型的数据架构师。这七年里,我亲手重构过四套核心报表系统…

2026/7/13 3:45:25阅读更多 →
多模态大模型实战指南:从原理到部署的完整流程

多模态大模型实战指南:从原理到部署的完整流程

1. 多模态大模型到底解决什么问题,适合谁上手如果你正在处理需要同时理解图像、文本、音频甚至视频的任务,比如给图片生成描述、从视频里提取关键信息、或者基于图文内容做问答,那么多模态大模型就是你现在最该关注的方向。它和传统的单模态模…

2026/7/13 3:45:25阅读更多 →
从Prompt到Agent:大模型应用的技术演进与实战指南

从Prompt到Agent:大模型应用的技术演进与实战指南

1. 先搞清楚这些技术到底解决什么问题如果你最近在接触大模型相关项目,可能会被各种新概念搞晕:Agent、Agentic RAG、Prompt Engineering、多智能体协作...这些技术迭代确实快,但核心脉络其实很清晰——它们都在解决同一个问题:如…

2026/7/13 3:45:25阅读更多 →
大模型技术架构解析:从Transformer到Agentic RAG的演进路径

大模型技术架构解析:从Transformer到Agentic RAG的演进路径

在大模型技术快速迭代的今天,很多开发者都感到学习压力巨大——新概念层出不穷,从Agent到Agentic RAG,从Prompt Engineering到多智能体系统,每个技术点都看似复杂。本文将通过系统化的技术脉络梳理,帮你建立对大模型底…

2026/7/13 3:45:25阅读更多 →
非刚性ICP算法:解决视频扩散模型3D点云生成质量难题

非刚性ICP算法:解决视频扩散模型3D点云生成质量难题

如果你最近尝试过用视频扩散模型生成3D内容,可能会遇到这样的困境:生成的3D点云看起来像一堆杂乱无章的"千层饼",根本无法在实际项目中使用。这背后的问题在于,传统方法在处理非刚性变形时往往力不从心。ECCV26的最新开…

2026/7/13 3:40:24阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/13 0:50:34阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

研究痛点提出(提出问题)重组肠激酶是融合标签切除核心工具酶,当前原核表达体系存在三大标准化难题,直接阻碍可复现的蛋白质分离纯化流程搭建:Trx、GST、单 SUMO 标签融合产物绝大多数为包涵体,沉淀占比超 9…

2026/7/13 0:04:58阅读更多 →
语音转文字工具AsrTools:让音频整理变得简单高效

语音转文字工具AsrTools:让音频整理变得简单高效

语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text …

2026/7/13 0:04:58阅读更多 →
Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:04:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/11 16:20:28阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/11 23:15:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/12 21:43:43阅读更多 →