Just a note before the rest of the description which was completely written by Google Gemini: this is basically just a GUI with some commodity features i really needed in order to share screenshots i made with NVIDIA Share with my friends on Discord, telegram and so on... The core of the project is - jxr_to_png by ledoge, which actually coded the program. Also thanks to hdrfix by bvibber.
A desktop application that automatically monitors NVIDIA screenshot directories for HDR .jxr files and converts them to high-quality SDR .png format with professional tone mapping.
Built with PyQt5 โ features a premium dark-mode UI, system tray integration, multi-language support, and multi-threaded parallel conversion.
- ๐ Automatic Monitoring โ Watches NVIDIA screenshot folders recursively via Watchdog, converting new
.jxrfiles on the fly. - ๐จ Professional Tone Mapping โ Two-stage pipeline: HDR decode โ Hable tone mapping with boosted saturation for vivid, social-media-ready colors.
- ๐ Multi-Language Support โ Available in 10 languages (IT, EN, ES, DE, FR, PT, JA, ZH, KO, RU) with automatic system language detection and in-app language selector.
- ๐คซ Customizable Background Mode โ Toggle between "Minimize to Tray" or "Close App" on window close.
- โก Parallel Conversion โ Multi-threaded processing (3 workers) for blazing fast batch conversions.
- ๐ก๏ธ Smart File Detection โ Automatically detects and fixes fake
.jxrfiles that are actually mislabeled PNGs (a known NVIDIA bug). - ๐ฅ๏ธ Premium Dark UI โ Glassmorphism-inspired interface with purple/blue accents, smooth animations, and a polished system tray experience.
- ๐ฆ Single Instance Guard โ Prevents multiple instances from running simultaneously.
- ๐ง Persistent Configuration โ Settings stored in
%APPDATA%for seamless operation even when installed inC:\Program Files.
| Language | Code | Flag |
|---|---|---|
| Italiano | it |
๐ฎ๐น |
| English | en |
๐ฌ๐ง |
| Espaรฑol | es |
๐ช๐ธ |
| Deutsch | de |
๐ฉ๐ช |
| Franรงais | fr |
๐ซ๐ท |
| Portuguรชs | pt |
๐ง๐ท |
| ๆฅๆฌ่ช | ja |
๐ฏ๐ต |
| ไธญๆ | zh |
๐จ๐ณ |
| ํ๊ตญ์ด | ko |
๐ฐ๐ท |
| ะ ัััะบะธะน | ru |
๐ท๐บ |
The app automatically detects your system language on first launch. You can change the language at any time from the in-app selector โ it switches instantly without restart.
The conversion pipeline uses a two-step process to ensure maximum color fidelity:
โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโ
โ .jxr โ โโโถ โ jxr_to_png โ โโโถ โ hdrfix โ โโโถ โ .png โ
โ (HDR) โ โ (decode) โ โ (tone map) โ โ (SDR) โ
โโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโ
- Decode:
jxr_to_png.exedecodes the JPEG XR HDR file into a raw HDR PNG. - Tone Map:
hdrfix.exeapplies the Hable filmic tone mapping curve with+20%saturation boost, producing an SDR image that looks vivid even after social media compression (Telegram, WhatsApp, etc.).
- Python 3.8+
- Windows 10/11
# Clone the repository
git clone https://github.com/TargetMisser/JXRConverter.git
cd JXRConverter
# Install dependencies
pip install -r requirements.txt
# Run the application
python main.pyYou can build an MSI installer natively using cx_Freeze:
pip install cx_Freeze
python setup.py bdist_msiThis will create an standard Windows .msi package in the dist/ directory that handles:
- Installing the app to
C:\Program Files\JXRConverter\ - Creating all necessary shortcuts
- Registering uninstallation entries
You need to place these executables in the project root before building:
| Tool | Source | Purpose |
|---|---|---|
jxr_to_png.exe |
ledoge/jxr_to_png | Decodes JPEG XR HDR files to PNG |
hdrfix.exe |
bvibber/hdrfix | Applies tone mapping (HDR โ SDR) |
On first launch, configure:
- Watch Folder: The NVIDIA screenshot directory to monitor (default:
C:\Users\<you>\Videos\NVIDIA) - Tool Path: Path to the folder containing
jxr_to_png.exeandhdrfix.exe - Language: Auto-detected from your system, or pick manually from the dropdown
Settings are persisted in %APPDATA%\JXRConverter\config.json.
JXRConverter/
โโโ main.py # Entry point, single-instance guard, High-DPI
โโโ ui.py # PyQt5 GUI (dark mode, system tray, config, i18n)
โโโ converter.py # Watchdog + ThreadPool conversion engine
โโโ translations.py # Multi-language i18n system (10 languages)
โโโ styles.py # QSS stylesheet (glassmorphism dark theme)
โโโ resources.py # Inline SVG icons for window and tray
โโโ requirements.txt # Python dependencies
โโโ build_and_install.ps1 # Automated build & deploy script
This project would not be possible without these excellent open-source tools:
- jxr_to_png by ledoge โ JPEG XR to PNG decoder with HDR metadata support. Used as the first stage of the conversion pipeline.
- hdrfix by bvibber (Brion Vibber) โ HDR to SDR tone mapping tool with multiple algorithms (Hable, ACES, Reinhard). Used as the second stage for professional-grade color conversion.
- PyQt5 โ Cross-platform GUI framework by Riverbank Computing.
- Watchdog โ Filesystem monitoring library.
- PyInstaller โ Used for packaging the standalone executable.
- Built with the assistance of Antigravity by Google DeepMind.
This project is licensed under the MIT License โ see the LICENSE file for details.
Note: The external tools (jxr_to_png.exe, hdrfix.exe) are not included in this repository and are subject to their own licenses. Please refer to their respective repositories for license information.
- NVIDIA occasionally saves screenshots with a
.jxrextension that are actually PNG files internally. The app automatically detects and handles this case. - The Hable tone mapping with
+20%saturation is tuned to counteract the color desaturation that occurs when sharing images on platforms like Telegram and WhatsApp. jxr_to_png.exealready uses multi-threading internally (6 threads for decoding), so the app limits parallel workers to 3 to avoid CPU saturation.
- Redesigned the UI using the solid "Swiss Minimalist" design system.
- Transitioned colors to deep black (
#101217) and electric blue (#2B6CEE). - Replaced the standalone PyInstaller packaging with a clean MSI Windows Installer via cx_Freeze.
- Complete UI overhaul using The Midnight Luminary design system
- New neon purple and electric blue accent colors
- Fully adopted dark glassmorphism effects for cards and console
- Added internationalization (i18n) with support for 10 languages
- Auto-detects system language on first launch
- In-app language selector with instant switching (no restart needed)
- New styled QComboBox for language selection
- Added toggle for minimize-to-tray vs close behavior
- Automatic HDR screenshot monitoring and conversion
- Two-stage conversion pipeline with Hable tone mapping
- Premium dark-mode UI with system tray integration