The modern, private way to convert any image—PNG, AVIF, HEIC, PDF, SVG, TIFF, TGA & more—into a smaller, universally compatible JPG.
Drop any image → get a tiny, standard JPG.
100% private. All processing stays in your browser.
Click here to select files or drag & drop.
Processing 0/0 files…
Today’s Impact
How We Estimate Carbon
Smaller files mean every future download uses less energy. We estimate potential reduction using the Sustainable Web Design model: data-transfer energy × grid carbon intensity.
- Energy intensity (SWDM v3): 0.81 kWh per GB transferred.
- Global default grid intensity: 442 g CO₂e per kWh.
This reflects data-transfer only and excludes the one-time CPU cost to compress on your device.
Your Privacy & Our Stats
Your images stay on your device. All compression happens locally in your browser. We don’t upload or store files.
To show impact, we collect anonymous counts (image totals, bandwidth saved). To prevent spam, IPs are used for short-lived rate-limits and are never stored with stats.
You’re in control. Opt out right here—or use the settings panel (gear above) any time:
Allow Anonymous Statistics
Estimated Downstream Savings
The stats above show direct savings from avoiding uploads and downloads. This panel estimates the additional, collective impact of sharing smaller files. We assume 10% of images are shared and each is downloaded an extra 3 times.
Bandwidth estimate ...
Images considered (today) ...
CO₂e estimate ...
Thanks Everyone!
OnlyJPG is built on the shoulders of giants. We’re grateful to the open-source community and service providers who make this tool possible.
Jpegli The core high-fidelity JPEG encoding library from Google that powers the app's compression engine. Emscripten The compiler toolchain used to compile Jpegli's C++ codebase into high-performance WebAssembly. PDF.js Enables client-side rasterization of PDF files into images for processing. @resvg/resvg-wasm A high-performance WebAssembly port of the resvg library, used for accurately rasterizing SVG images. libheif-js A WebAssembly library that enables the browser to decode HEIC/HEIF images. geotiff.js A robust library for parsing TIFF files, used as a primary decoder for multi-page TIFF images. UTIF.js A compact and fast JavaScript library for decoding various types of TIFF images, used as a reliable fallback. @jsquash/avif Part of the jSquash project, providing a fast, WebAssembly-based decoder for AVIF images. Three.js The 3D library used to render the interactive globe in our statistics header. Material Web Provides the high-quality, themeable user interface components like sliders, switches, and cards. fflate An extremely fast, lightweight JavaScript library for creating ZIP archives for downloads. ExifReader A JavaScript library used to parse EXIF, ICC, and XMP metadata from source images. es-module-shims A polyfill that provides support for JavaScript import maps in all modern browsers, simplifying module loading. Bun The fast JavaScript runtime powering our anonymous statistics backend. SQLite The embedded database used by our statistics server for fast, reliable data storage. Nginx The high-performance web server that serves our static application and API proxy. Cloudflare Provides the edge cache, proxy, and security services for the application and its stats API. jsDelivr, UNPKG, & esm.sh The trio of CDNs used for resilient, multi-region delivery of our third-party modules and decoders. Google Fonts The service used to deliver the Atkinson Hyperlegible and Roboto typefaces. Solar System Scope Provides the high-resolution Earth textures for the globe visualization, licensed under CC BY 4.0. Live Cloud Maps The source for the cloud and specular map overlays, derived from EUMETSAT data and available under CC0.Terms of Service
OnlyJPG is a free tool provided “as-is,” without warranties. Always keep backups of your originals.
Use it for good. Don’t use it for illegal, malicious, or abusive purposes.
We aren’t liable for issues, data loss, or existential crises arising from its use.
Write Us!
Because we don't know what we don't know!
hello [at] onlyjpg [dot] com
Quality
Controls the visual quality of the output JPEG. Higher values result in better quality and larger file sizes. Jpegli's perceptual model means that a quality of 90 is often visually identical to the original, but much smaller.
Chroma Subsampling
Reduce color detail (while keeping brightness sharp) to shrink files. This works because human eyes are less sensitive to color shifts than to brightness changes. Learn more ↗
4:2:0 (Photos)
Reduces color resolution by 75% (best general savings for photos).
4:4:4 (Graphics/Text)
Preserves full color resolution (prevents color bleed on sharp edges).
4:2:2
Reduces horizontal color resolution only.
Color Encoding
Choose the color model used during compression. The output is always a standard, compatible JPEG. XYB (perceptual) ↗, from the JPEG XL project, often gives smaller files for the same visual quality. YCbCr (legacy) ↗ matches classic JPEG math for maximum compatibility in strict, older workflows.
XYB (Perceptual) — Recommended Legacy YCbCr
Progressive Mode
Progressive JPEG shows a quick full-image preview that sharpens as it downloads, which feels faster on slow networks.
Sequential loads from top to bottom and can decode slightly faster on older devices.
Learn more ↗
On (More Scans)
Default. More scans can improve perceived loading.
On (Normal)
Fewer progressive stages.
Off (Sequential)
Standard top-to-bottom decoding.
Adaptive Quantization
Smarter compression that spends more data (bits) on detailed, complex areas of the image and less on smooth, simple areas. This generally improves visual quality at a given file size. Highly recommended.
Enable Adaptive Quantization
Transparency & Background
JPEG files cannot be transparent. When converting an image with transparent areas (like a PNG or SVG), this color will be used for the background. This is also known as the "matte" color. Learn more ↗
Matte / Background Color
Grayscale
Remove color entirely to greatly reduce size (great for scans, B&W photos, line art).
Metadata
Choose which metadata to keep from the original file. Turning these off saves space and improves privacy.
Note: EXIF orientation is always applied to the image pixels to prevent rotation issues, then stripped. Not all source formats (like PDF or SVG) contain all types of metadata.
Download
When finished, automatically start a ZIP download.
Auto-Download when finished
Rasterization Defaults
Default settings for converting vector or document formats into pixels (a process called rasterization).
Higher DPI creates more pixels when rasterizing PDFs/TIFFs/SVGs, resulting in larger pixel dimensions and a larger file. 150 DPI is great for screens; use ~300 DPI for print. What is DPI? ↗
PDF & TIFF (multi-page)
Configure how documents with multiple pages, like PDFs and some TIFFs, are converted.
First N pages
remove add
All pages
How to export multiple pages:
Per-page (recommended) Single long image
If too large: Smart-slice If too large: Auto-scale DPI
SVG rasterization
Control the output pixel dimensions when converting SVG images.
Used only when Width and Height are both 0. We scale so the longer side matches this value.
Non-zero Width/Height override “Longest side”. If one is 0, we compute it using the SVG’s aspect ratio.
Privacy
Contribute anonymous usage statistics to help improve the service. No images or personal data are ever sent.
Allow Anonymous Statistics
Reset
If you get lost, reset back to safe defaults.
Reset All Settings to Defaults.png)

