Skip to content

TargetMisser/JXRConverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ JXR to PNG Converter

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.

Python PyQt5 License Platform


โœจ Features

  • ๐Ÿ”„ Automatic Monitoring โ€” Watches NVIDIA screenshot folders recursively via Watchdog, converting new .jxr files 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 .jxr files 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 in C:\Program Files.

๐ŸŒ Supported Languages

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.


๐Ÿ“ธ How It Works

The conversion pipeline uses a two-step process to ensure maximum color fidelity:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  .jxr    โ”‚ โ”€โ”€โ–ถ  โ”‚ jxr_to_png   โ”‚ โ”€โ”€โ–ถ  โ”‚   hdrfix    โ”‚ โ”€โ”€โ–ถ  โ”‚  .png    โ”‚
โ”‚  (HDR)   โ”‚      โ”‚  (decode)    โ”‚      โ”‚ (tone map)  โ”‚      โ”‚  (SDR)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  1. Decode: jxr_to_png.exe decodes the JPEG XR HDR file into a raw HDR PNG.
  2. Tone Map: hdrfix.exe applies 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.).

๐Ÿš€ Installation

Prerequisites

  • Python 3.8+
  • Windows 10/11

From Source

# 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.py

Build MSI Installer

You can build an MSI installer natively using cx_Freeze:

pip install cx_Freeze
python setup.py bdist_msi

This will create an standard Windows .msi package in the dist/ directory that handles:

  1. Installing the app to C:\Program Files\JXRConverter\
  2. Creating all necessary shortcuts
  3. Registering uninstallation entries

External Tools Required

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)

โš™๏ธ Configuration

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.exe and hdrfix.exe
  • Language: Auto-detected from your system, or pick manually from the dropdown

Settings are persisted in %APPDATA%\JXRConverter\config.json.


๐Ÿ—๏ธ Project Structure

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

๐Ÿ™ Credits & Acknowledgments

External Tools

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.

Libraries

  • PyQt5 โ€” Cross-platform GUI framework by Riverbank Computing.
  • Watchdog โ€” Filesystem monitoring library.
  • PyInstaller โ€” Used for packaging the standalone executable.

Development

  • Built with the assistance of Antigravity by Google DeepMind.

๐Ÿ“ License

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.


๐Ÿ› Known Issues & Notes

  • NVIDIA occasionally saves screenshots with a .jxr extension 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.exe already uses multi-threading internally (6 threads for decoding), so the app limits parallel workers to 3 to avoid CPU saturation.

๐Ÿ“‹ Changelog

v1.4 โ€” Swiss Minimalist UI & MSI Installer

  • 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.

v1.3 โ€” UI Redesign (Premium Glassmorphism)

  • 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

v1.2 โ€” Multi-Language Support

  • 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

v1.1 โ€” Tray Toggle

  • Added toggle for minimize-to-tray vs close behavior

v1.0 โ€” Initial Release

  • Automatic HDR screenshot monitoring and conversion
  • Two-stage conversion pipeline with Hable tone mapping
  • Premium dark-mode UI with system tray integration

About

Automatic HDR (.jxr) to SDR (.png) screenshot converter for NVIDIA. Features Hable tone mapping, multi-threaded conversion, and a premium PyQt5 dark-mode UI.

Resources

License

Stars

Watchers

Forks

Packages