Convert to JPEG

Right click. Get a JPEG. That is the whole product.

One item in the main Windows 11 context menu, not buried under "Show more options." Point it at an image, a PDF, an Illustrator file, or a video and a JPEG appears next to the original. No window, no settings, no first run.

Windows 11 MIT Licensed Rust
Download Source on GitHub
Overview

Why this exists.

Converting a file to JPEG on Windows is a solved problem that nobody has solved well. You open an editor you did not want to open, wait for it to load, use a Save As dialog, pick a quality slider you do not understand, and put the result somewhere you will not find later. For one file that is annoying. For forty it is an afternoon.

Convert to JPEG puts a single verb in the context menu. Select files, right click, click the item. The JPEGs appear beside the originals with sensible settings already chosen. Nothing opens, nothing asks you a question, and nothing gets overwritten.

It installs as a signed MSIX package. The signature chains to a root Windows already trusts, so there is no certificate to import and no Developer Mode to turn on. To remove it: Settings, Installed apps, Convert to JPEG.

Input

What it reads.

Images
Through Windows Imaging Component: PNG, JPEG, TIFF, BMP, GIF, ICO, DDS, JPEG XR, and anything else the machine has a codec for. HEIC, AVIF, WebP and camera RAW work the moment you install the relevant extension, with no change here.
Vector and page description
SVG, SVGZ, PDF, and AI. These rasterise at 300 DPI with the long edge held between 2048 and 10000 pixels, so a 16 pixel icon still produces something useful and a billboard does not produce a gigabyte.
EPS and PostScript
Illustrator writes a PDF stream into every EPS it saves, and that is rendered directly at full quality with nothing else installed. Anything else is handed to Ghostscript if you have it, and if you do not, it says so and names Ghostscript.
Video
Through Media Foundation: MP4, MOV, AVI, WMV, MKV, WebM, MPEG and the rest, subject to installed codecs. Video is the one thing it asks about: first frame, or every frame into a numbered folder beside the source.
Output

What it does to your files.

Nothing is ever overwritten. If photo.jpg already exists, the output becomes photo (1).jpg. Multi-page and multi-frame sources export everything, zero padded so the files sort correctly: report-01.jpg through report-40.jpg.

Quality
97
Chroma subsampling
None, 4:4:4
Transparency
Composited onto white
Colour
Converted to sRGB, including CMYK sources
EXIF rotation
Applied to the pixels, tag reset
EXIF metadata
Carried across where the source has it
Timestamp
Copied from the source
Command Line

The same binary, without Explorer.

jpegify <file>...
jpegify --list <file>     paths to convert, one per line, UTF-8

# answer the video question up front
jpegify --first-frame <file>
jpegify --all-frames <file>

Inside the package it lives at %ProgramFiles%\WindowsApps\LockeWerks.ConvertToJpeg_*\jpegify.exe.

Design

Why it will not take your shell down.

Explorer maps a shell extension every single time a context menu opens. If that extension drags image codecs, PDFium, fonts and Media Foundation in with it, every right click anywhere on the system pays for all of it.

So the shell extension does almost nothing: check the extension, return a label and an icon, launch a process. All the real work happens in a separate worker binary. The handler also runs in dllhost.exe rather than explorer.exe, which means a fault inside it cannot take the shell down with it.

Your Files

Nothing leaves your machine.

Convert to JPEG runs entirely locally. It reads the files you point it at, writes JPEGs next to them, and does nothing else. It has no network code, sends no telemetry, contacts no server, and has no account, licence check, or update ping.

Ghostscript is never bundled. It is AGPL, and shipping it would force this project to be AGPL or licensed commercially from Artifex. Calling a copy you installed yourself carries no such obligation, so that is what it does.

Get It

Install.

Download the .msix from GitHub and double click it. Windows 11 only: the top level context menu does not exist on Windows 10, and a verb registered there would never appear.

Get the latest release