Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
bad0f68
准备 Avalonia 项目
GarthTB Jul 2, 2026
dcb6448
添加单测和基准测试项目
GarthTB Jul 2, 2026
7929556
添加工具项目
GarthTB Jul 2, 2026
dd8bd7f
测量最大饱和度
GarthTB Jul 2, 2026
45e98e5
测试逐像素修改的算法性能
GarthTB Jul 3, 2026
f520592
调整逐像素修改方法、添加调优测试
GarthTB Jul 3, 2026
7f3da30
测试圆角算法
GarthTB Jul 4, 2026
611fc49
实现像素修改方法
GarthTB Jul 4, 2026
1e17877
实现图像处理扩展方法
GarthTB Jul 4, 2026
28d00a1
添加图像处理扩展方法的测试
GarthTB Jul 4, 2026
092c39f
添加 Exif 提取器
GarthTB Jul 5, 2026
6877409
添加色彩转换函数
GarthTB Jul 5, 2026
b97ca3a
添加 Hsl 和 Hsv 色空间
GarthTB Jul 5, 2026
43b2756
求最大色度值
GarthTB Jul 5, 2026
f87b041
静态接口抽象
GarthTB Jul 6, 2026
0438fef
实现饱和度增强模块
GarthTB Jul 6, 2026
6a42491
整理项目结构
GarthTB Jul 6, 2026
942ea5a
修改测试
GarthTB Jul 6, 2026
8d9069e
添加标注模块
GarthTB Jul 6, 2026
a98230f
优化测试
GarthTB Jul 6, 2026
affaffb
添加保存模块
GarthTB Jul 6, 2026
c6be955
添加标注模块
GarthTB Jul 6, 2026
0a6b6d3
搭建预览架构
GarthTB Jul 6, 2026
9b98aa3
整理项目结构
GarthTB Jul 7, 2026
82c1746
修复标注错位问题
GarthTB Jul 7, 2026
2898fc7
优化饱和度算法
GarthTB Jul 8, 2026
2230fb6
添加预览模块
GarthTB Jul 8, 2026
17d3bca
搭建整个架构
GarthTB Jul 8, 2026
7282432
小修小补
GarthTB Jul 8, 2026
848b442
补全发布配置
GarthTB Jul 8, 2026
580a662
后端微调
GarthTB Jul 8, 2026
108acda
搭建前端
GarthTB Jul 9, 2026
ebff282
整理项目结构
GarthTB Jul 9, 2026
1b61db2
完成几个 Tab
GarthTB Jul 9, 2026
41004a9
实现预览窗口联动
GarthTB Jul 9, 2026
661420a
添加消息弹窗
GarthTB Jul 9, 2026
31cc22e
实现文件增删
GarthTB Jul 9, 2026
349c16b
微调优化
GarthTB Jul 9, 2026
d38cf95
优化代码
GarthTB Jul 9, 2026
101db9b
优化预览行为
GarthTB Jul 9, 2026
80610b8
优化代码
GarthTB Jul 9, 2026
de1036d
整理共享状态
GarthTB Jul 10, 2026
110fe53
更新依赖与细节修复
GarthTB Jul 10, 2026
0fe0aed
完成边框 Tab 的 UI
GarthTB Jul 10, 2026
0583e49
完成边框 Tab
GarthTB Jul 10, 2026
5418f14
小修小补,逻辑闭环
GarthTB Jul 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
107 changes: 107 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: release

on:
push:
tags:
- 'v*'

jobs:
release:
strategy:
matrix:
include:
- os: windows-latest
rid: win-x64
- os: macos-latest
rid: osx-arm64
- os: ubuntu-latest
rid: linux-x64

name: 构建并发布到 ${{ matrix.rid }}

runs-on: ${{ matrix.os }}

permissions:
contents: write

steps:
- name: 检出代码
uses: actions/checkout@v7

- name: 安装 .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.x'

- name: 编译并清理
shell: bash
run: |
dotnet publish GarthImgLab/GarthImgLab.csproj -c Release -r ${{ matrix.rid }} -o publish
find publish/ -name "*.pdb" -delete
find publish/ -name "*.dSYM" -exec rm -rf {} +

- name: 平台相关处理
shell: bash
run: |
if [ "${{ matrix.rid }}" = "osx-arm64" ]; then
VER=$(dotnet msbuild GarthImgLab/GarthImgLab.csproj -getProperty:Version)
plutil -replace CFBundleVersion -string "$VER" GarthImgLab/Assets/macOS/Info.plist
plutil -replace CFBundleShortVersionString -string "$VER" GarthImgLab/Assets/macOS/Info.plist
APP="GarthImgLab.app"
mkdir -p "$APP/Contents/MacOS" "$APP/Contents/Resources"
mv publish/* "$APP/Contents/MacOS/"
cp GarthImgLab/Assets/macOS/Info.plist "$APP/Contents/"
cp GarthImgLab/Assets/macOS/icon.icns "$APP/Contents/Resources/"
elif [ "${{ matrix.rid }}" = "linux-x64" ]; then
cp GarthImgLab/Assets/Linux/garthimglab.desktop publish/
cp GarthImgLab/Assets/Linux/install.sh publish/
chmod +x publish/install.sh
cp GarthImgLab/Assets/Linux/icon_256.png publish/
cp GarthImgLab/Assets/icon_48.png publish/
fi

- name: 打包压缩
shell: bash
run: |
DIR="GarthImgLab-${{ github.ref_name }}-${{ matrix.rid }}"
if [ "${{ matrix.rid }}" = "win-x64" ]; then
mv publish "$DIR"
cp CHANGELOG.md LICENSE README.md "$DIR/"
7z a -t7z -m0=lzma2 -mx=9 "$DIR.7z" "$DIR"
elif [ "${{ matrix.rid }}" = "osx-arm64" ]; then
DMG_ROOT="dmg-root"
mkdir -p "$DMG_ROOT"
cp -R "GarthImgLab.app" "$DMG_ROOT/"
ln -s /Applications "$DMG_ROOT/Applications"
cp CHANGELOG.md LICENSE README.md "$DMG_ROOT/"
hdiutil create -volname "GarthImgLab" -srcfolder "$DMG_ROOT" -ov -format UDZO "$DIR.dmg"
elif [ "${{ matrix.rid }}" = "linux-x64" ]; then
mv publish "$DIR"
cp CHANGELOG.md LICENSE README.md "$DIR/"
tar -cJf "$DIR.tar.xz" "$DIR"
fi

- name: 生成校验和
shell: bash
run: |
BASE="GarthImgLab-${{ github.ref_name }}-${{ matrix.rid }}"
if [ "${{ matrix.rid }}" = "win-x64" ]; then
ARCHIVE="$BASE.7z"
HASHER="sha256sum"
elif [ "${{ matrix.rid }}" = "osx-arm64" ]; then
ARCHIVE="$BASE.dmg"
HASHER="shasum -a 256"
elif [ "${{ matrix.rid }}" = "linux-x64" ]; then
ARCHIVE="$BASE.tar.xz"
HASHER="sha256sum"
fi
$HASHER "$ARCHIVE" > "$ARCHIVE.sha256"

- name: 上传发布
uses: softprops/action-gh-release@v3
with:
files: |
*.7z
*.tar.xz
*.dmg
*.sha256
25 changes: 25 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: test

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
test:
name: 测试

runs-on: ubuntu-latest

steps:
- name: 检出代码
uses: actions/checkout@v7

- name: 安装 .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10.0.x'

- name: 运行测试
run: dotnet test
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ bin/
obj/
/packages/
riderModule.iml
/_ReSharper.Caches/
/_ReSharper.Caches/
2 changes: 0 additions & 2 deletions .idea/.idea.GarthImgLab/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions .idea/.idea.GarthImgLab/.idea/avalonia.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/.idea.GarthImgLab/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# 更新日志

本文基于 [Keep a Changelog]。项目遵循 [语义化版本]。

## [开发中]

## [1.0.4] - 2026-05-05

更新依赖库

## [1.0.3] - 2026-04-05

- **Added**: 元数据分隔符参数
- **Changed**: EXIF 槽位 +1

## [1.0.2] - 2026-03-27

移除图标拖放支持

## [1.0.1] - 2026-03-19

移除无效的 TIFF 压缩选项

## [1.0.0] - 2026-03-08

首发。使用 .NET 10.0 WPF 框架。

## 前身

- [FrameSeal] 边框工具
- [OkSaturate] 饱和度工具

[Keep a Changelog]: https://keepachangelog.com/en/2.0.0

[语义化版本]: https://semver.org

[开发中]: https://github.com/GarthTB/GarthImgLab/compare/v1.0.4...HEAD

[1.0.4]: https://github.com/GarthTB/GarthImgLab/compare/v1.0.3...v1.0.4

[1.0.3]: https://github.com/GarthTB/GarthImgLab/compare/v1.0.2...v1.0.3

[1.0.2]: https://github.com/GarthTB/GarthImgLab/compare/v1.0.1...v1.0.2

[1.0.1]: https://github.com/GarthTB/GarthImgLab/compare/v1.0.0...v1.0.1

[1.0.0]: https://github.com/GarthTB/GarthImgLab/releases/tag/v1.0.0

[FrameSeal]: https://github.com/GarthTB/FrameSeal

[OkSaturate]: https://github.com/GarthTB/OkSaturate
75 changes: 0 additions & 75 deletions DevTools/MaxSatFinder.cs

This file was deleted.

Loading