【开源小工具】根据自己的需求做了个轻量级的图片处理小工具

项目地址:GitHub - LNemo05/EasyPhotoFlow: 多功能轻量级照片处理工具。支持 AI 抠图、批量/单张裁剪、分辨率调整及格式转换,拥有直观的 Web 操作界面

为什么做这个项目

做这个项目的契机是在之前训练ai绘图的lora的时候,为了保证训练效果,需要尽可能把图片聚焦在训练目标上面,而且还要尽可能统一分辨率,甚至抠图,虽然我知道有一些专业的处理算法,比如人物聚焦、中央聚焦之类的,但个人还是倾向于自己动手处理。

而且在平时某些网站需要上传图片的时候,也总会给你一些限制,比如尺寸限制和格式限制等。

对于自己的这些需求也没找到合适的工具,Photoshop之类的太重了没必要,免费处理的网站我又不放心个人隐私问题。刚好现在coding agent又多又方便,找工具不如自己写工具,所以我就根据我的这些需求做了这么一个小项目。

整个过程都在本地运行,不需要联网,保护隐私。处理完的图片会保存在 output 目录下。

项目能做什么

目前实现了几个我觉得比较实用的功能:

图片抠图

这个功能用的是 rembg 这个库,效果一般。但对于大部分主体明确的照片,基本可以自动把背景去掉。虽然不如 PS 那样精细,但应付日常需求完全够用。上传图片,点击处理,几秒钟就能得到透明背景的 PNG 文件。

图片裁剪

有时候需要把一堆图片裁成统一的比例,比如我刚刚提到的需求。这个功能可以设置目标分辨率或者裁剪比例处理。支持上传文件夹和单张图片。

分辨率调整

这个比较直观,就是改变图片的尺寸。支持按比例缩放,也可以指定具体的宽高。用了简单的LANCZOS算法,保证在处理图片时在不把图片比例被破坏的情况下得到对应的图片比例。

格式转换

支持 PNG、JPG、WebP 之间互转。

技术选择

后端用的是 Flask,主要是因为轻量、简单。整个项目的核心逻辑其实不复杂,Flask 足够了。

图像处理用的是 OpenCV,这个应该是 Python 里最常用的图像处理库了。功能强大,文档也全。

抠图功能集成了 rembg,这个库封装得很好,调用起来很方便,但效果不是很完美,胜在够轻。

前端没有用什么框架,就是简单的 HTML + CSS + JavaScript。毕竟本来主要是自己用,实用为主,界面能看就行,没必要搞太复杂。

使用方式

项目的使用很简单。克隆代码后,安装依赖:

ip install -r requirements.txt

然后运行:

python app.py

浏览器打开 http://localhost:5000 就可以用了。

如果不想敲命令,我还写了启动脚本。Windows 用户可以直接双击 start.bat,macOS 和 Linux 用户运行 start.sh 就行。

处理完的图片会保存在 output 目录下。

更多详情可以查阅README

一些思考

这是我第一次开源软件,做这个项目的过程中,感觉很多时候我们需要的并不是那些功能强大的专业软件,而是一个刚好能解决手头问题的小工具。轻量、简单、易用,有时候反而更重要。

当然,这个项目现在还比较简陋。界面不够美观,功能也比较基础,代码质量也有提升空间。但先把一个能用的版本放出来,然后慢慢改进。如果有人觉得有用,或者想要添加新功能,都欢迎参与进来。

未来计划

后续如果有时间,我想加一些新功能:

水印添加:批量给图片加水印

换底:用来给证件照换底色

更好的界面:现在的 UI 确实有点简陋(不过够用就行,不换也可以)

不过这些都要看时间和精力了,毕竟研究牲日常精力确实有限,加上目前个人也没有很需求这些功能,也欢迎大家提建议或者直接贡献代码。

如果觉得还不错,欢迎给个 Star。有问题或建议也可以提一下。

听说好像还能把github项目变成skill封装在claude code之类的,结合大模型使用说不定也很方便。

就这样,希望这个小工具能帮到有需要的人。

标签: none

评论已关闭