What does the AVIF to JPG Converter do?
The AVIF to JPG Converter converts modern AV1 Image File Format (.avif / .avis) images into universally compatible, compressed Joint Photographic Experts Group (.jpg / .jpeg) graphics with customizable background colors, quality settings, and Retina resolution scaling.
AVIF is a next-generation image format based on the AV1 video codec standard, providing state-of-the-art HDR and SDR compression. However, older software, desktop operating system viewers, photo editing suites, and email clients do not yet support AVIF files. Converting AVIF to JPG ensures universal compatibility across all legacy platforms, applications, and operating systems.
Core Concepts
- ISOBMFF Box Parsing: Inspects
ftypbox identifiers (avif,avis,mif1,miaf) and extracts intrinsic dimensions from theispe(Image Spatial Extents) box. - Customizable Solid Background Replacement: Transparent alpha pixels found in AVIF images are blended smoothly onto your chosen background color (White, Black, Off-White, Dark Navy) to avoid dark halos in JPEG outputs.
- Variable JPEG Quality Compression: Adjust compression between 60% and 100% to optimize between bandwidth and image sharpness.
- Resolution Scaling (@2x / @3x / @4x): Upscale or downscale dimensions with custom width and height overrides.
How to use the tool?
- Upload AVIF File or Paste Base64: Drag and drop a
.aviffile into the drop zone, or paste a Base64 AVIF Data URI string into the editor. - Select Background Fill & Quality: Choose your background fill color (
#ffffff,#000000) and JPEG quality preset (92%,100%,80%). - Optional Dimension Overrides: Set custom pixel
WidthorHeightoverrides if resizing is needed. - Convert to JPG: Click Convert to JPG to execute rasterization.
- Download or Copy: Click Download to save your
.jpgfile or Copy the Base64 Data URI.
Related Developer Utilities
- AVIF to PNG Converter — Convert AVIF images to lossless PNG format.
- WebP to JPG Converter — Convert WebP graphics into compressed JPEG photos.
- PNG to JPG Converter — Convert PNG images into compressed JPEG photos.
- TIFF to JPG Converter — Convert TIFF scans into web JPEG photos.
REST API Integration
blueutils.com provides a free REST API endpoint (POST https://blueutils.com/api/image/avif-to-jpg) for programmatic validation, AVIF box parsing, and JPEG Data URI formatting.
API Request Parameters
| Name | Type | Description | Example |
|---|---|---|---|
rawText |
String | Base64 AVIF Data URI or raw Base64 payload. | "data:image/avif;base64,AAAAIGZ0..." |
options.scale |
Number | Multiplier scale factor (1, 2, 3, 4). Default is 1. |
2 |
options.quality |
Number | JPEG quality factor from 0.1 to 1.0. Default is 0.92. |
0.92 |
options.background |
String | Hex or CSS background fill color. Default is "#ffffff". |
"#ffffff" |
options.width |
Number | Optional target width in pixels. | 1200 |
options.height |
Number | Optional target height in pixels. | 800 |
API Request Payload Examples
cURL
curl -X POST https://blueutils.com/api/image/avif-to-jpg \
-H "Content-Type: application/json" \
-d '{
"rawText": "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAG1pZjFhdmlmAAACAG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAACQAAAAoaXBycAAAABxpY29uAAAACHRocnUAAAAQcGFzcAAAAAVzcGVjAAAAABNpc3BlAAAAAAAAAAEAAAABAAAAAHBpcmYAAAAQcGFzcAAAAAVzcGVjAAAAAAAQcGFzcAAAAAVzcGVjAAA=",
"options": {
"scale": 1,
"quality": 0.92,
"background": "#ffffff"
}
}'Python
import requests
url = "https://blueutils.com/api/image/avif-to-jpg"
payload = {
"rawText": "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAG1pZjFhdmlmAAACAG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAACQAAAAoaXBycAAAABxpY29uAAAACHRocnUAAAAQcGFzcAAAAAVzcGVjAAAAABNpc3BlAAAAAAAAAAEAAAABAAAAAHBpcmYAAAAQcGFzcAAAAAVzcGVjAAAAAAAQcGFzcAAAAAVzcGVjAAA=",
"options": {
"scale": 1,
"quality": 0.92,
"background": "#ffffff"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String jsonPayload = """
{
"rawText": "data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAG1pZjFhdmlmAAACAG1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAHBpY3QAAAAAAAAAAAAAAAAAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAACQAAAAoaXBycAAAABxpY29uAAAACHRocnUAAAAQcGFzcAAAAAVzcGVjAAAAABNpc3BlAAAAAAAAAAEAAAABAAAAAHBpcmYAAAAQcGFzcAAAAAVzcGVjAAAAAAAQcGFzcAAAAAVzcGVjAAA=",
"options": {
"scale": 1,
"quality": 0.92,
"background": "#ffffff"
}
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://blueutils.com/api/image/avif-to-jpg"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}API Response Parameters
| Name | Type | Description | Example |
|---|---|---|---|
isValid |
Boolean | Indicates whether the AVIF was parsed successfully. | true |
mimeType |
String | Target output MIME type (image/jpeg). |
"image/jpeg" |
originalFormat |
String | Detected input MIME type (image/avif). |
"image/avif" |
dataUri |
String | Base64 JPEG Data URI string. | "data:image/jpeg;base64,..." |
metadata.originalWidth |
Number | Original width in pixels extracted from ispe box. |
800 |
metadata.originalHeight |
Number | Original height in pixels extracted from ispe box. |
600 |
metadata.targetWidth |
Number | Scaled target pixel width. | 800 |
metadata.targetHeight |
Number | Scaled target pixel height. | 600 |
metadata.majorBrand |
String | Detected ISOBMFF major brand (avif, avis, mif1). |
"avif" |
metadata.quality |
Number | Applied JPEG compression quality factor. | 0.92 |
metadata.background |
String | Applied solid background color. | "#ffffff" |
snippets.html |
String | Ready-to-use HTML <img> tag. |
"<img src=\"...\" />" |
snippets.css |
String | Ready-to-use CSS background-image declaration. |
"background-image: url(\"...\");" |
API Response Payload Examples
Success Response (HTTP 200 OK)
{
"isValid": true,
"mimeType": "image/jpeg",
"originalFormat": "image/avif",
"dataUri": "data:image/jpeg;base64,AAAAIGZ0...",
"base64": "AAAAIGZ0...",
"metadata": {
"originalWidth": 800,
"originalHeight": 600,
"targetWidth": 800,
"targetHeight": 600,
"scale": 1,
"quality": 0.92,
"background": "#ffffff",
"majorBrand": "avif",
"aspectRatio": 1.3333,
"originalSizeBytes": 204,
"formattedSize": "204 B"
},
"snippets": {
"html": "<img src=\"data:image/jpeg;base64,...\" width=\"800\" height=\"600\" alt=\"Converted JPEG Graphic\" />",
"css": "background-image: url(\"data:image/jpeg;base64,...\");",
"markdown": ""
}
}Validation Failure Response (HTTP 400 Bad Request)
{
"isValid": false,
"error": "Invalid format: Expected a valid AV1 Image File (.avif) with standard ISOBMFF ftyp header."
}Rate Limit Exceeded Response (HTTP 429 Too Many Requests)
{
"error": "API rate limit exceeded. Please wait or contact support@blueutils.com."
}Why use an API to convert AVIF to JPG?
Automating AVIF to JPG conversion via API in build workflows and asset pipelines offers major benefits:
- Universal Application Support: Ensure older document pipelines and social media uploaders that reject AVIF receive universal JPEGs.
- Enterprise Office & CMS Ingestion: Allow older CMS systems and PDF reporting tools to display modern AVIF images as standard JPEGs.
- Optimized Token Efficiency for AI Agents: Extracts clean image dimensions and brand metadata before sending image data to multimodal vision agents.
Native Usage
How to convert AVIF to JPG locally using command-line tools:
Windows (CMD / PowerShell)
# PowerShell: Convert AVIF to JPG with white background using ImageMagick
magick -background white -flatten "photo.avif" -quality 92 "photo.jpg"Linux / Unix (Bash / Shell)
# Bash: Convert AVIF to JPG using avifdec (libavif) or ImageMagick
avifdec photo.avif photo.png && convert photo.png -quality 92 photo.jpg
# Or directly using ImageMagick:
convert -background white -flatten photo.avif -quality 92 photo.jpgPython
# Python using Pillow with pillow-heif / pillow-avif-plugin
from PIL import Image
import pillow_avif
# Open AVIF and convert RGBA to RGB with background fill
avif_image = Image.open('photo.avif')
if avif_image.mode in ('RGBA', 'LA') or (avif_image.mode == 'P' and 'transparency' in avif_image.info):
alpha = avif_image.convert('RGBA')
bg = Image.new('RGB', alpha.size, (255, 255, 255))
bg.paste(alpha, mask=alpha.split()[3])
bg.save('photo.jpg', 'JPEG', quality=92)
else:
avif_image.convert('RGB').save('photo.jpg', 'JPEG', quality=92)
print("Converted photo.avif to photo.jpg successfully")Java
// Java native ImageIO with TwelveMonkeys or AVIF plugin
import java.io.File;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.Color;
import java.awt.Graphics2D;
public class AvifToJpg {
public static void main(String[] args) throws Exception {
BufferedImage avifImage = ImageIO.read(new File("photo.avif"));
BufferedImage jpgImage = new BufferedImage(avifImage.getWidth(), avifImage.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g = jpgImage.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, avifImage.getWidth(), avifImage.getHeight());
g.drawImage(avifImage, 0, 0, null);
g.dispose();
ImageIO.write(jpgImage, "jpg", new File("photo.jpg"));
System.out.println("Converted photo.avif to photo.jpg successfully");
}
}