v1.2.1
📷 PhotoMark 更新日志 (Changelog)
本文档记录了 PhotoMark 各版本的主要更新、修复与体验改进。
🚀 [v1.2.1] - 2026-08-22
🐛 缺陷修复 (Bug Fixes)
- 🖼️ 修复空状态白色矩形:未导入任何照片时不再显示默认 300×150 的空白画布;预览容器会在无照片时隐藏,选择照片后自动显示。
🚀 [v1.2.0] - 2026-08-22
✨ UI 与交互改进 (UI & Experience)
- 🧩 模板可视化卡片:经典底栏 / 画廊 / 拍立得 / 极简微章现在使用 SVG 缩略图预览,选中态更直观;
- 📂 检查器折叠:右侧「相框设置」各分组支持点击标题折叠/展开,长面板不再只能整页滚动;
- 👁 原图对比:预览工具栏新增「👁 原图」按钮,按住即可查看未经相框处理的原始照片;
- 🔍 预览平移:放大超过 100% 后,可直接在预览区拖拽平移画面;
- 🎞️ 队列拖拽排序:左侧照片列表可拖拽调整顺序,缩略图摘要中显示分辨率;
- 🔔 通知分级:Toast 区分成功/错误/信息三种样式,并支持连续提示自动刷新;
- 🌗 跟随系统主题:主题按钮支持 深色 → 浅色 → 跟随系统 循环切换;
- ✍️ 字体族选择器:新增 Inter/系统/衬线/等宽字体族选择,并按配置持久化。
🚀 [v1.1.1] - 2026-08-22
✨ 功能新增与优化 (Features & Improvements)
- 🎨 自定义背景色入口:新增「自定义颜色」背景选项,修复了代码支持但界面无法选中的断点;
- 💾 配置持久化:相框模板、质感、Logo、参数显示、导出设置(格式/画质/文件名模板)现在会自动保存,重启后恢复;
- 📝 文件名模板:导出支持
{filename}/{model}/{make}/{lens}/{date}/{index}/{width}/{height}变量,默认{filename}_framed; - 🗂️ 批量导出防覆盖:输出目录存在同名文件时自动追加
(1)、(2)…,避免互相覆盖; - 🖥️ 浏览器预览模式:非 Tauri 环境可直接通过文件选择器/拖拽导入 JPG/PNG/WebP,并在页面内解析 EXIF、预览和导出(工作区已有改动,随本版本纳入)。
🐛 缺陷修复 (Bug Fixes)
- 🧠 批量导出内存优化:改为逐张渲染、逐张写盘,避免将所有全尺寸 base64 一次性驻留内存;
- ❌ 取消与失败明细:批量导出支持中途取消,失败照片会列出文件名与错误原因(前 8 条);
- 📷 TIFF 支持真实落地:桌面端补齐 TIFF/TIF 解码支持,README 明确浏览器模式仅支持 JPG/PNG/WebP;
- 🎞️ 拍立得背景修复:深黑与自定义背景色在拍立得模板中正确生效。
🚀 [v1.1.0] - 2026-08-18
✨ 功能新增与优化 (Features & Improvements)
- 🎛️ 自定义焦距显示模式:
- 新增「焦距显示方式」配置项,支持三种呈现模式:
- 镜头实际物理焦距(默认):忠实还原镜头本身的物理光学焦距(如
35mm、50mm); - 35mm 等效焦距:展示按传感器画幅换算后的 35mm 全画幅等效焦段(如
52mm); - 两者同时显示:当实际焦距与等效焦距不同时,合并呈现为
35mm (等效 52mm);若相同(全画幅)则自动精简为单一焦距。
- 镜头实际物理焦距(默认):忠实还原镜头本身的物理光学焦距(如
- 新增「焦距显示方式」配置项,支持三种呈现模式:
- ✍️ 全面升级自定义签名与拍摄时间排版:
- 画廊相框 (
Gallery Border):完整接入自定义签名与拍摄时间,自适应居中双行排版。 - 拍立得即显 (
Polaroid Instant):重构底部排版,左侧支持显示第 3 行手写/印刷签名(✍️ Photo by Alex);右侧支持同时呈现品牌矢量 Logo 与复古胶片等宽时间戳,彻底解决此前有 Logo 时时间被覆盖的问题。 - 经典底栏 (
Classic Bottom Bar):右侧副信息支持同时展示拍摄时间与自定义签名(Photo by Alex • 2026.08.18 16:30:20)。 - 极简微章 (
Minimal Badge):水印胶囊同步支持同时挂载签名与拍摄时间。
- 画廊相框 (
- 🖼️ 效果演示样张嵌入:
- 项目根目录新增
docs/assets/静态资源库,并在README.md核心特性下方嵌入高清横/竖构图实拍演示样张。
- 项目根目录新增
🐛 缺陷修复 (Bug Fixes)
- 修复 APS-C 焦距换算错误:
- 修复读取 APS-C 画幅照片时焦距被强制乘以 1.5 转换系数的 Bug,默认优先展示镜头标称实际光学焦距。
- 纯净排版与品牌兜底优化:
- 移除无相机制造商信息时强制兜底为索尼 Logo 的逻辑,对于无 EXIF 或非相机来源图片自动隐藏 Logo 与分割线;
- 移除机身型号为空时多余的
'Camera'占位文字。
🚀 [v1.0.1] - 2026-08-18
🐛 缺陷修复 (Bug Fixes)
- 解决 AppImage 独立运行白屏与连接错误:
- 修复脱离开发环境独立启动 AppImage 时出现的
Could not connect to localhost: Connection refused错误。 - 重构打包构建管线,统一采用
yarn tauri build --no-bundle,将前端 HTML/CSS/JS 与 SVG 矢量资源完整内嵌至 Rust 原生二进制内部,实现 100% 离线自包含运行。
- 修复脱离开发环境独立启动 AppImage 时出现的
✨ 功能新增与优化 (Features & Improvements)
- 🪟 全平台 CI/CD 自动化构建:
- 接入 GitHub Actions 多平台矩阵,自动构建并发布 Linux 通用 AppImage(
photomark-linux-x86_64.AppImage,仅 4.8MB)与 Windows 安装包(PhotoMark_1.0.1_x64-setup.exe与 MSI)。
- 接入 GitHub Actions 多平台矩阵,自动构建并发布 Linux 通用 AppImage(
- 🖼️ 原画无损画质直通 (Master Export):
- 彻底去除中间二次有损压缩环节,直接流式读取未解压的原始高分辨率照片数据。
- 支持 PNG(100% 逐像素点对点数学无损) 与 JPEG 100% 满品质 原画输出。
- 🎨 自研多级金字塔高斯毛玻璃引擎:
- 实现纯 TypeScript 3-Pass 快速卷积高斯模糊算法,突破 Linux WebKitGTK 下 Canvas 硬件滤镜限制,输出深邃通透的真毛玻璃背景。
- 支持毛玻璃模糊强度(15 ~ 150)实时滑动调节。
- 🔍 全局 UI 缩放与多屏适配:
- 顶部导航栏新增界面自由缩放控件(80% ~ 150%),完美适配 HiDPI 2K/4K 视网膜大屏与轻薄本。
- 🌓 深浅双色主题与交互调优:
- 修复深色模式下下拉选择框
<select>与<option>的字体对比度。 - 每个调节滑块均配有独立
↺恢复默认值按钮与全局重置全部参数按钮。 - 导入区域与选择框移除已不适用的 RAW 扩展名提示。
- 修复深色模式下下拉选择框
🌟 [v1.0.0] - 2026-08-18
初始发布 (Initial Release)
- 基于 Tauri 2.0 + 纯 Rust 图像内核 + 现代化前端 净室重构。
- 内存占用仅 25MB ~ 30MB,极速秒开。
- 纯 Rust
kamadak-exif解析相机机身、镜头、曝光三要素与拍摄日期。 - 内置 4 大相框模板(经典底栏、画廊相框、拍立得即显、极简微章)。
- 内置 20+ 款主流相机品牌矢量 Logo 自动匹配。
- 基于 Rust Rayon 多核并行批量导出与实时进度条。
- 采用 GNU General Public License v3.0 (GPLv3) 开源协议,并附加品牌商标免责声明。
Full Changelog: v1.2.0...v1.2.1