feat: modernize to .NET 8, split into Core/Cli/Gui (#3)

* feat: modernize to .NET 8, split into Core/Cli/Gui projects

Core: shared converter library (cross-platform)

Cli: console app with CLI args (cross-platform)

Gui: WinForms app (Windows only, uses Core library)

- Split into 3 projects sharing ConvertSRTto3DASS.Core

- Rewrite SrtConverter with clean public API

- Add CLI entry point with stdlib argument parsing

- Redesign GUI with GroupBox layout, flat buttons, modern fonts

- Update README with publish commands

* feat: add drag-and-drop to GUI

* refactor: rename GUI controls to proper PascalCase identifiers

---------

Co-authored-by: imrayya <imrayya@users.noreply.github.com>
This commit is contained in:
2026-06-24 18:02:05 +07:00
committed by GitHub
parent 743900f2f7
commit 40ce11d068
27 changed files with 961 additions and 1839 deletions
+30 -16
View File
@@ -18,20 +18,26 @@ When watching 3D movies (Side-by-Side, Over-Under, Anaglyph), centered subtitles
## Usage
### Command Line (CLI)
The application runs in two modes — **GUI** (no arguments) and **CLI** (with arguments).
**Drag and drop:**
### GUI
1. Drag and drop an `.srt` file onto `ConvertSRTto3DASS.exe`
- Uses default settings (SBS mode, 1280x720)
2. The resulting `.ass` file will be saved in the same directory with the same name
1. Launch `ConvertSRTto3DASS.exe` (or the Linux/macOS binary)
2. Select your `.srt` input file
3. Choose your 3D mode (SBS, OU, or Anaglyph)
4. Adjust settings as needed
5. Click **Convert**
**Command line:**
### Command Line
Pass any argument to trigger CLI mode:
```
ConvertSRTto3DASS.exe input.srt [options]
```
Or drag and drop an `.srt` file onto the executable.
Available options:
```
@@ -58,14 +64,6 @@ ConvertSRTto3DASS.exe movie.srt --mode ou --resx 1920 --resy 1080
ConvertSRTto3DASS.exe movie.srt --mode rg --offsetx 6 --bottomoffset 24
```
### GUI
1. Launch `ConvertSRTto3DASSGUI.exe`
2. Select your `.srt` input file
3. Choose your 3D mode (SBS, OU, or Anaglyph)
4. Adjust settings as needed
5. Click **Convert**
> **Note:** The GUI is experimental. Feedback and bug reports are welcome!
## Known Issues
@@ -75,8 +73,24 @@ ConvertSRTto3DASS.exe movie.srt --mode rg --offsetx 6 --bottomoffset 24
## Requirements
- **Windows** — the GUI requires Windows (.NET Framework 4.8)
- **CLI** — the core converter is a .NET Framework 4.8 console application
- **.NET 8 SDK** — required to build
- **Windows** — the GUI runs on Windows
- **Linux/macOS** — the CLI runs cross-platform
## Building
```bash
# Build all projects
dotnet build
# Publish CLI (cross-platform)
dotnet publish ConvertSRTto3DASS.Cli -c Release -r linux-x64 --self-contained false -p:PublishSingleFile=true
dotnet publish ConvertSRTto3DASS.Cli -c Release -r osx-x64 --self-contained false -p:PublishSingleFile=true
dotnet publish ConvertSRTto3DASS.Cli -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true
# Publish GUI (Windows only)
dotnet publish ConvertSRTto3DASS.Gui -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true
```
## License