{"id":47265545,"url":"https://github.com/oire/sic","last_synced_at":"2026-03-17T09:02:59.432Z","repository":{"id":341697074,"uuid":"1158153829","full_name":"Oire/sic","owner":"Oire","description":"SIC! — Simple Image Converter","archived":false,"fork":false,"pushed_at":"2026-03-15T01:02:41.000Z","size":344,"stargazers_count":2,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-15T14:11:05.010Z","etag":null,"topics":["accessibility","c-sharp","dotnet","image-processing","lightweight","windows","windows-forms","winforms"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oire.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-14T22:06:32.000Z","updated_at":"2026-03-15T00:49:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Oire/sic","commit_stats":null,"previous_names":["oire/sic"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Oire/sic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oire%2Fsic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oire%2Fsic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oire%2Fsic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oire%2Fsic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oire","download_url":"https://codeload.github.com/Oire/sic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oire%2Fsic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30619627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T08:10:05.930Z","status":"ssl_error","status_checked_at":"2026-03-17T08:10:04.972Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","c-sharp","dotnet","image-processing","lightweight","windows","windows-forms","winforms"],"created_at":"2026-03-15T04:50:08.104Z","updated_at":"2026-03-17T09:02:59.427Z","avatar_url":"https://github.com/Oire.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SIC! — Simple Image Converter\n\nAn accessible image format converter for Windows. Batch-convert images between JPG, PNG, WebP, ICO, BMP, TIFF, GIF, and AVIF with optional resizing. Works as both a GUI app and a command-line tool.\n\nBuilt with accessibility in mind — screen-reader friendly with proper labels and tab order — but designed to look and feel like a proper app for sighted users too.\n\n## Features\n\n- **Batch conversion** — queue multiple images and convert them all at once\n- **8 formats** — JPG, PNG, WebP, ICO, BMP, TIFF, GIF, AVIF\n- **Resize and crop** — specify target dimensions with two modes: keep proportions or crop to exact size\n- **Multi-size ICO** — create `.ico` files with multiple embedded sizes using built-in presets or custom dimensions\n- **Multiple input methods** — file dialog, folder import, drag \u0026 drop, Ctrl+V paste (files, screenshots, or URLs), download by link\n- **Filename conflict handling** — always asks: overwrite, rename (`_1` suffix), or skip\n- **Cloud file detection** — warns about OneDrive/SharePoint placeholder files that haven't been downloaded yet\n- **CLI mode** — headless conversion from the command line, no UI needed\n- **Automatic updates** — checks for new versions in the background with Ed25519 signature verification\n- **Portable mode** — place an empty `userdata` folder next to `Sic.exe` to keep all data alongside the executable\n- **Localized** — English, German, French, Russian, Ukrainian\n- **Accessible** — logical tab order, keyboard shortcuts, screen-reader friendly\n\n## Requirements\n\n- Windows 10/11 (x64)\n- [.NET 8.0 Runtime](https://dotnet.microsoft.com/download/dotnet/8.0)\n\n## Installation\n\nDownload the latest release from [GitHub Releases](https://github.com/Oire/sic/releases) or the official [Oire Software website](https://oire.org/). Alternatively, build from source:\n\n```bash\ngit clone https://github.com/Oire/sic.git\ncd sic\ndotnet build\n```\n\nFor a single-file executable:\n\n```bash\ndotnet publish -c Release\n```\n\n## Usage\n\n### GUI\n\nLaunch the app without arguments to open the graphical interface:\n\n1. Add images using **File \u003e Add Image**, drag \u0026 drop, or **Ctrl+V**\n2. Select a target format from the dropdown\n3. Optionally check **Resize** and enter target dimensions\n4. Click **Convert Selected** or **Convert All**\n\nConverted files are saved to `%APPDATA%\\Oire\\Sic\\Converted\\` by default (or `userdata\\Converted\\` in portable mode). Change this in **Settings**.\n\n### Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| Ctrl+N | Add image |\n| Ctrl+Shift+N | Add folder |\n| Ctrl+L | Add image by link |\n| Ctrl+V | Paste (files, screenshots, or URLs) |\n| Delete | Remove selected image |\n| Ctrl+Shift+Delete | Remove all images |\n| F5 | Convert selected |\n| Ctrl+Shift+F5 | Convert all |\n| Ctrl+Alt+F5 | Create multi-size ICO |\n| Ctrl+, | Settings |\n| F1 | Open user manual |\n| Ctrl+Shift+D | Donate |\n| Shift+F1 | About |\n| Escape | Close the application |\n\n### Command Line\n\n```bash\nsic -i input.png -o output.jpg\nsic -i photo.bmp -o photo.webp\nsic -i avatar.png -o avatar.ico -r 128x128\n```\n\n| Option | Short | Required | Description |\n|--------|-------|----------|-------------|\n| `--input` | `-i` | Yes | Path to the source image |\n| `--output` | `-o` | No* | Path for the converted image (format inferred from extension) |\n| `--format` | `-f` | No* | Target format (e.g. jpg, png, webp). Used when `--output` is omitted |\n| `--resize` | `-r` | No | Target dimensions as WxH, Wx, or xH (e.g. `128x128`, `128x`, `x128`) |\n| `--crop` | `-c` | No | Crop mode: scale to cover, then center-crop to exact dimensions |\n\n\\* Either `--output` or `--format` must be specified.\n\n## Configuration\n\nSettings are stored in `%APPDATA%\\Oire\\Sic\\Sic.cfg` (or `userdata\\Sic.cfg` in portable mode):\n\n- **Output folder** — where converted files are saved (default: `Converted` subfolder in the data directory)\n- **Language** — UI language (default: system language)\n- **Confirm exit** — warn when closing with images still in the queue (default: enabled)\n\n### Portable Mode\n\nTo run SIC! in portable mode, create an empty `userdata` folder next to `Sic.exe`. When this folder is present, all application data — configuration, converted images, and logs — is stored there instead of in `%APPDATA%`. This is useful for running from a USB drive or keeping everything self-contained.\n\n## Building\n\nRequires [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0).\n\n```bash\ndotnet build              # Debug build (x64)\ndotnet build -c Release   # Release build\ndotnet publish -c Release # Single-file executable\n```\n\n## Building the Installer\n\nThe `installer/` directory contains an [Inno Setup](https://jrsoftware.org/isdl.php) script that builds a Windows installer with automatic .NET 8 Desktop Runtime detection and installation.\n\n### Quick start\n\nDouble-click `installer/build-installer.bat` — it builds the app in Release mode and compiles the installer.\n\n### PowerShell options\n\n```powershell\n.\\installer\\Build-Installer.ps1                        # Build app + installer + portable ZIP\n.\\installer\\Build-Installer.ps1 -Appcast               # Also generate signed appcast\n.\\installer\\Build-Installer.ps1 -Appcast -Deploy       # Build everything and deploy via SCP\n.\\installer\\Build-Installer.ps1 -NoPortable            # Skip portable ZIP (e.g., for beta releases)\n.\\installer\\Build-Installer.ps1 -SkipBuild             # Installer only (use existing binaries)\n.\\installer\\Build-Installer.ps1 -OpenOutput            # Open output folder when done\n.\\installer\\Build-Installer.ps1 -InnoSetupPath \"C:\\Path\\To\\ISCC.exe\"  # Custom Inno Setup path\n```\n\nOutput files are created in `installer/Output/`:\n\n- `sic-v{version}-setup.exe` — Windows installer\n- `sic-v{version}-portable.zip` — portable archive with `userdata/` folder (unless `-NoPortable`)\n- `appcast.xml` and `appcast.xml.signature` — auto-update manifest (if `-Appcast`)\n\nThe portable ZIP is compressed with [7-Zip](https://www.7-zip.org/) if available (auto-detected), otherwise falls back to built-in compression with a warning.\n\n### Deploying\n\nThe `-Deploy` switch uploads release files to the hosting server via SCP. It reads connection details from `installer/deploy.json` (gitignored). Copy `installer/deploy.example.json` and fill in your SSH host alias and remote path to get started.\n\n### What the installer includes\n\n- `Sic.exe` (single-file executable)\n- `Magick.Native-Q16-x64.dll`\n- `help/` (user manual, per language)\n- `locale/` (translation `.mo` files)\n\nUser data (`%APPDATA%\\Oire\\Sic`) is not bundled — it is created at runtime. On uninstall, the user is offered the option to remove it.\n\n## Project Structure\n\n```\nsrc/Sic/\n  Program.cs                      # Entry point (GUI or CLI dispatch)\n  MainWindow.cs/.Designer.cs      # Main application window\n  SettingsDialog.cs/.Designer.cs  # Settings form\n  AboutDialog.cs/.Designer.cs    # About dialog\n  AddUrlDialog.cs/.Designer.cs   # Add image by link dialog\n  AddFolderDialog.cs/.Designer.cs # Add images from folder dialog\n  IcoPresetDialog.cs/.Designer.cs # Multi-size ICO preset picker\n  AddSizeDialog.cs/.Designer.cs   # Custom ICO size entry dialog\n  ProgressDialog.cs/.Designer.cs  # Progress dialog for batch operations\n  Models/\n    ImageItem.cs                  # Image queue item data model\n    ResizeMode.cs                 # Resize mode enum (KeepProportions, Crop)\n  Services/\n    ImageConverter.cs             # Magick.NET conversion engine\n  Utils/\n    Config.cs                     # SharpConfig-based settings\n    FileHelper.cs                 # Cloud placeholder detection, file enumeration\n    Localization.cs               # GetText.NET wrapper\n    Constants/\n      App.cs                      # App metadata and paths\n      ExitCode.cs                 # CLI exit code constants\n      Logging.cs                  # Log file paths and templates\n```\n\n## License\n\nCopyright 2026 Oire Software SARL. Licensed under the [Apache License 2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foire%2Fsic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foire%2Fsic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foire%2Fsic/lists"}