# yc-remove-watermark **Repository Path**: yunjieg/yc-remove-watermark ## Basic Information - **Project Name**: yc-remove-watermark - **Description**: No description available - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-28 - **Last Updated**: 2026-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YC Remove Watermark YC 图片去水印工具 一款跨平台桌面应用,支持去除图片水印、清理隐藏元数据,基于 Electron + Vue 3 + Element Plus 开发。 ## 功能特性 - **水印去除**:框选水印区域,使用 OpenCV 的 Telea 算法完成图像修复去水印 - **元数据清理**:通过重新编码移除 EXIF 及其他图片隐藏元数据 - **批量处理**:支持多张图片批量处理,可查看单张图片处理状态 - **区域框选**:在图片预览页按住 Shift 拖动鼠标即可圈选水印区域(采用归一化坐标) - **格式转换**:支持导出为 PNG、JPEG,也可保留原始图片格式 - **跨平台**:可编译打包为 macOS(DMG)、Windows(NSIS 安装包)版本 ## 技术栈 | 分层 | 技术 | | ---- | ---- | | 桌面框架 | Electron | | 界面开发 | Vue 3 (组合式 API) + TypeScript | | UI 组件库 | Element Plus | | 渲染进程图像处理 | OpenCV.js(图像修复) | | 主进程图像处理 | sharp(元数据处理、图片重编码) | | 国际化 | vue-i18n(支持中文 / 英文) | | 项目构建 | Vite + electron-builder | ## 快速开始 ### 环境要求 - Node.js >= 18 - npm >= 9 ### 安装依赖 npm install ### 开发运行 npm run dev 启动 Vite 开发服务,渲染进程与主进程均支持热更新。 ### 项目编译 npm run build 先执行 vue-tsc --noEmit 做类型检查,再通过 Vite 打包,产物输出至 dist/ 和 dist-electron/ 目录。 ### 应用打包 npm run package 编译项目并打包安装包:macOS 生成 DMG 文件,Windows 生成 NSIS 安装程序,文件输出到 release/ 目录。 ## 项目目录结构 electron/ main.ts 主进程:窗口管理、IPC 通信、文件弹窗 preload.ts 预加载脚本:通过 contextBridge 挂载 window.electronAPI services/ watermark.ts 水印服务:基于 sharp 实现备用去水印方案(模糊/裁剪) metadata.ts 元数据服务:基于 sharp 清理 EXIF 并重新编码图片 src/ App.vue 根组件:统一管理图片状态与处理流程 components/ ImageUploader.vue 图片上传组件:文件选择 + 拖拽上传 ImagePreview.vue 图片预览组件:平移、缩放、Shift 拖拽选区 BatchList.vue 批量列表:侧边缩略图、单图状态展示 ExportPanel.vue 导出面板:处理配置与操作按钮 utils/ inpaint.ts 工具方法:加载 OpenCV.js、执行水印修复 styles/ global.css 全局样式:应用整体布局样式 ## 工作流程 1. 通过文件选择框或拖拽导入图片 2. 在预览界面按住 Shift 拖动鼠标,绘制一处或多处水印选区 3. 配置选项:元数据清理、导出格式、JPEG 画质等 4. 执行处理:渲染进程使用 OpenCV.js 完成水印修复,再通过 IPC 调用主进程 sharp 工具清理元数据并重编码 5. 选择保存路径,导出已处理图片 ## 补充说明 1. 首次运行会从 OpenCV 官方 CDN(4.10.0 版本)加载 OpenCV.js,首次使用需联网。 2. macOS 端采用隐藏式标题栏,搭配自定义窗口控制按钮样式。 3. 临时文件会存放至系统临时目录 watermark-remover/ 下,暂无自动清理功能。