
在日常开发和内容创作中,图片处理是一个高频需求:调整尺寸、压缩体积、格式转换、添加水印、应用滤镜……这些操作看似简单,但要做好却需要一套完整的工具链。
ImageCraft 是一个基于 Web 的全功能图片处理工具,提供图形化界面,让用户无需编写代码即可完成复杂的图片处理任务。它采用 React + TypeScript 构建前端,Express + Sharp 构建后端,支持单张处理和批量处理,并内置了 18 种常用尺寸模板。
项目地址:https://toolion/imagecraft
内置 18 种常用尺寸模板,覆盖各大平台:
支持选择多张图片,一次性应用相同的处理参数,打包为 ZIP 文件下载。批量处理上限根据订阅计划动态调整。
前端采用 React 19 + TypeScript + Vite 构建,使用 Tailwind CSS 进行样式管理,React Icons 提供图标支持。
核心设计模式:
后端采用 Express + TypeScript 构建,核心图片处理基于 Sharp 库。
图片处理流水线:
每个处理步骤都是独立的 Pipeline 操作,通过 Sharp 链式调用实现高效处理。
processor.ts 是整个系统的核心,负责所有图片处理逻辑:
关键实现细节:
系统采用基于策略的权限控制,通过 registerAppSubscription 注册每个应用的功能配置:
功能守卫流程:
每日限流:
通过 createDailyLimitGuard 实现,基于 appUsage 表记录每日处理次数,超过限制则返回 429。
左侧面板显示上传的图片文件名,文件名过长时自动截断为 123....jpg 格式:
通过 ResizeObserver 监听面板宽度变化,动态计算可显示的字符数:
处理设置页的每个功能区块(调整尺寸、压缩、格式转换等)支持开关控制。开启时自动展开,关闭时自动收起:
顶部工具栏参考 CollabNote 的实现,使用 flex-wrap 实现小屏自动换行:
ImageCraft 作为一个全功能图片处理工具,核心价值在于:
项目整体代码量约 1700 行前端 + 1000 行后端,展示了如何使用现代 Web 技术栈构建一个完整的图片处理应用。
项目地址:https://toolion/imagecraft
