HEIC compatibility

Make a HEIC photo work where you need it

Choose a native Apple export, a simple JPG copy or a named application preset. Keep the original and check the resulting file before sharing.

4 min read Updated Sep 5, 2026
A paper-cut illustration of an iPhone photo becoming two easy-to-share photo cards.
Quick answer

What you need to know

JPG and JPEG are the same image format. If the destination rejects HEIC, create a JPEG copy with an Apple export or HEIC to JPG. For a supported application form with byte and pixel rules, select its named preset in Prepare Application Photos and load the HEIC there directly. Keep the original and inspect the result.

Best for
People sharing iPhone photos or preparing a stored HEIC image for a website that requires JPEG.
Start with
HEIC to JPG
Do this first

Choose one path from the original

Start with the destination’s required format and dimensions, then use the most direct suitable export.

  1. 1

    Read the actual requirement

    Check whether HEIC is unsupported or whether the problem is file size, dimensions or another property. JPG and JPEG are equivalent formats.

  2. 2

    Choose a native export or matching tool

    Use an Apple export for an existing photo, HEIC to JPG for a simple copy, or a named application preset when its rules match your form.

  3. 3

    Keep the source HEIC

    Work from the original rather than repeatedly re-encoding earlier JPG copies. A still JPEG does not preserve all HEIC photo features.

  4. 4

    Check the saved copy

    Inspect orientation, color, fine detail, actual format, bytes and pixels. Select that saved file in the destination’s picker.

01

Choose a native or browser export

Conversion is useful when it solves a real compatibility problem. Check the actual received or downloaded file before making another copy.

  • HEIC to JPG creates a JPEG with fixed encoding settings. It has no quality, crop, file-size or dimension controls.
  • A form accepting .jpg or .jpeg is asking for the same image format. Renaming a HEIC extension does not convert its contents.
  • When a destination adds size rules, choose a supported named application preset before converting so you can start from the original HEIC.
Use the tool

Open HEIC to JPG

Create a still JPG copy using the converter’s fixed settings when the destination only needs JPEG.

Native options

An existing photo and a future capture need different steps

Apple documents both direct export and a camera setting. Choose the option that matches the file you need now.

Existing HEIC
Export a JPEG on a Mac
In Photos or Preview, use File → Export and choose JPEG.
  • AirDrop, Messages or email may convert automatically when needed; inspect the received format rather than assuming conversion.
  • Apple: using HEIF or HEVC media.
Future iPhone or iPad photos
Choose Most Compatible
On supported devices, open Settings → Camera → Formats → Most Compatible.
  • This changes new captures. It does not convert photos already stored in your library.
Apple guidance published 5 December 2025, checked 5 September 2026. The controls available depend on the device and operating system.
02

Match a named application photo field

Prepare Application Photos can decode HEIC and check a new JPEG against one of its named portal presets. The preset is useful only when it matches the current form and upload field.

  • Choose Japan · My Number card for that online photo field. It keeps the source framing, checks each side’s range and does not enlarge an undersized original.
  • The preset checks a conservative 20,480–7,000,000-byte interval because the official page does not define KB and MB as exact byte counts.
  • If the result is below the minimum, it stays marked as failed. No filler bytes are added to create a misleading size pass.
  • The Bangladesh and Indonesian presets belong to different named upload fields. Do not reuse a country’s preset for an unrelated application.
Named requirement and inspectable result

My Number requires JPEG; local checks cover file properties

The official requirement and our synthetic conversion example answer different questions: what the field asks for, and what this exact encoder run produced.

J-LIS source undated, checked 5 September 2026. Output measured that day in Chrome 152.0.7977.83. The chart is not a face photo and has not been accepted by an identity portal. This example does not establish HDR fidelity, universal HEIC support or smaller output size.
03

Compare the JPEG with the original

The output is a still image. A conversion can succeed while losing information or producing a picture that does not suit its destination.

  • These workflows use one decoded image rather than preserving every image in a multi-image file or a Live Photo sequence.
  • JPEG encoding can soften detail. Do not assume HDR brightness, wide-gamut color, depth information or embedded metadata will carry over.
  • Compare color and orientation on the same display, then open the downloaded file in the receiving app.
  • For identity photos, follow the authority’s pose, background, recency and editing rules. File checks do not assess identity, likeness or acceptance.
Quick questions

HEIC conversion questions

Is JPEG better quality than JPG?

No. The two extensions identify the same format. Image dimensions, source quality and encoding settings determine the result; the extension does not.

Does Most Compatible convert old HEIC photos?

No. It changes future camera captures. Export an existing photo or convert a copy when you need a different file format.

Can I load HEIC straight into an application preset?

Yes. Prepare Application Photos accepts HEIC/HEIF when its decoder can read the source. Choose the preset for the exact named form and check its result. Other custom byte targets currently need a JPG conversion first.

Will the JPEG preserve every photo feature?

No. These workflows create one still image. Do not expect additional images, Live Photo motion, depth data, metadata or HDR presentation to carry over. Keep the original.

Why can the JPEG be larger than the HEIC?

A different format and encoder can need more bytes to represent the decoded image. Converting for compatibility does not guarantee compression; inspect the actual result and its destination’s limit.

Remember this

The short version

  • Choose the export path before repeatedly converting the same photo.
  • Use a named preset only for the application field it describes.
  • Inspect the saved JPEG and keep the original HEIC.
Ready to work

Open the tool you need

Choose the tool for the change your file needs.

(function() { const title = document.querySelector('h1'); const actionRegion = document.querySelector('.action-container, .action-body'); if (!title || !actionRegion || title.querySelector('.tool-hero-mark')) return; const path = window.location.pathname.replace(/\/$/, ''); if (!path || path === '/' || path.startsWith('/converters') || path === '/about' || path === '/contact' || path === '/support' || path === '/privacy-policy') { return; } const lowerKey = path.replace(/^\/(video|audio)\//, '').replace(/^\//, '').toLowerCase(); if (!lowerKey) return; let category = 'image'; if (path.startsWith('/video/')) category = 'video'; if (path.startsWith('/audio/')) category = 'audio'; const isUtility = lowerKey.includes('ascii') || lowerKey === 'check-my-file' || lowerKey === 'prepare-for-ai' || lowerKey.includes('resizer') || lowerKey.includes('metadata') || lowerKey.includes('compress') || lowerKey.includes('base64') || lowerKey.includes('background') || lowerKey.includes('crop') || lowerKey.includes('watermark') || lowerKey.includes('remove-pages') || lowerKey.includes('unlock') || lowerKey.includes('protect') || lowerKey.includes('editor') || lowerKey.includes('excel') || lowerKey.includes('upscale') || lowerKey.includes('merge') || lowerKey.includes('split') || lowerKey.includes('ocr') || lowerKey.includes('sign') || lowerKey.includes('trim') || lowerKey.includes('favicon'); if (category === 'image' && isUtility) category = 'tool'; const labelMap = { jpg: 'JPG', jpeg: 'JPEG', png: 'PNG', gif: 'GIF', svg: 'SVG', pdf: 'PDF', heic: 'HEIC', jfif: 'JFIF', webp: 'WEBP', bmp: 'BMP', ico: 'ICO', word: 'DOCX', docx: 'DOCX', excel: 'Excel', xls: 'XLS', xlsx: 'Excel', mp4: 'MP4', mov: 'MOV', avi: 'AVI', mp3: 'MP3', aac: 'AAC', flac: 'FLAC', wav: 'WAV', webm: 'WEBM', cr2: 'CR2', arw: 'ARW', nef: 'NEF', raf: 'RAF' }; const formatLabel = (value) => labelMap[value] || value.toUpperCase(); function getFormatMeta(key) { if (key === 'check-my-file') { return {primary: 'Check', secondary: 'File', connector: 'dot'}; } if (key === 'prepare-for-ai') { return {primary: 'Prepare', secondary: 'AI', connector: 'dot'}; } const directMatch = key.match(/^([a-z0-9]+)-to-([a-z0-9]+)$/); const convertMatch = key.match(/^convert-([a-z0-9]+)-to-([a-z0-9]+)$/); const convertToMatch = key.match(/^convert-to-([a-z0-9]+)$/); if (directMatch) { return {primary: formatLabel(directMatch[1]), secondary: formatLabel(directMatch[2]), connector: 'arrow'}; } if (convertMatch) { return {primary: formatLabel(convertMatch[1]), secondary: formatLabel(convertMatch[2]), connector: 'arrow'}; } if (convertToMatch) { return {primary: 'Any', secondary: formatLabel(convertToMatch[1]), connector: 'arrow'}; } if (key.startsWith('compress-')) { return {primary: 'Compress', secondary: formatLabel(key.replace('compress-', '')), connector: 'dot'}; } if (key.includes('base64') && key.includes('decode')) { return {primary: 'Base64', secondary: 'Decode', connector: 'dot'}; } if (key.startsWith('base64-to-')) { return {primary: 'Base64', secondary: formatLabel(key.replace('base64-to-', '')), connector: 'arrow'}; } if (key.includes('-to-base64')) { const from = key.replace('convert-', '').replace('-to-base64', ''); return {primary: formatLabel(from), secondary: 'Base64', connector: 'arrow'}; } if (key.includes('base64')) { return {primary: 'Base64', secondary: 'Encode', connector: 'dot'}; } if (key.includes('ascii')) { return {primary: 'ASCII', secondary: 'Art', connector: 'dot'}; } if (key.includes('resizer')) { return {primary: 'Resize', secondary: 'Pixels', connector: 'dot'}; } if (key.includes('remove-pages')) { return {primary: 'Remove', secondary: 'Pages', connector: 'dot'}; } if (key.includes('crop') && key.includes('pdf')) { return {primary: 'Crop', secondary: 'PDF', connector: 'dot'}; } if (key.includes('pdf-editor')) { return {primary: 'Edit', secondary: 'PDF', connector: 'dot'}; } if (key.includes('unlock')) { return {primary: 'Unlock', secondary: 'PDF', connector: 'dot'}; } if (key.includes('protect')) { return {primary: 'Protect', secondary: 'PDF', connector: 'dot'}; } if (key.includes('pdf') && key.includes('metadata')) { return {primary: 'Clean', secondary: 'Metadata', connector: 'dot'}; } if (key.includes('metadata')) { return {primary: 'EXIF', secondary: 'Clean', connector: 'dot'}; } if (key.includes('background')) { return {primary: 'Remove', secondary: 'Background', connector: 'dot'}; } if (key.includes('crop')) { return {primary: 'Crop', secondary: 'Image', connector: 'dot'}; } if (key.includes('watermark')) { return {primary: 'Watermark', secondary: 'Image', connector: 'dot'}; } if (key.includes('upscale')) { return {primary: 'Upscale', secondary: 'Image', connector: 'dot'}; } if (key.includes('merge')) { return {primary: 'Merge', secondary: 'PDF', connector: 'dot'}; } if (key.includes('split')) { return {primary: 'Split', secondary: 'PDF', connector: 'dot'}; } if (key.includes('ocr')) { return {primary: 'OCR', secondary: 'PDF', connector: 'dot'}; } if (key.includes('sign')) { return {primary: 'Sign', secondary: 'PDF', connector: 'dot'}; } if (key.includes('trim')) { return {primary: 'Trim', secondary: 'Video', connector: 'dot'}; } return {primary: 'Tool', secondary: '', connector: 'dot'}; } function getIconClass(key, categoryName) { const toFormat = key.split('-to-')[1]; if (key === 'check-my-file') return 'bi-file-earmark-check'; if (key === 'prepare-for-ai') return 'bi-ui-checks-grid'; if (key.includes('ascii')) return 'bi-textarea-t'; if (key.includes('resizer')) return 'bi-aspect-ratio'; if (key.includes('metadata')) return 'bi-shield-slash'; if (key.includes('compress')) return 'bi-file-earmark-zip'; if (key.includes('base64')) return 'bi-journal-code'; if (key.includes('background')) return 'bi-scissors'; if (key.includes('crop')) return 'bi-crop'; if (key.includes('watermark')) return 'bi-type'; if (key.includes('remove-pages')) return 'bi-trash'; if (key.includes('unlock')) return 'bi-unlock'; if (key.includes('protect')) return 'bi-lock'; if (key.includes('editor')) return 'bi-pencil-square'; if (key.includes('excel')) return 'bi-file-earmark-spreadsheet'; if (key.includes('upscale')) return 'bi-arrows-angle-expand'; if (key.includes('merge')) return 'bi-files'; if (key.includes('split')) return 'bi-scissors'; if (key.includes('ocr')) return 'bi-file-earmark-text'; if (key.includes('sign')) return 'bi-pen'; if (key.includes('trim')) return 'bi-scissors'; if (toFormat) { switch (toFormat) { case 'jpg': case 'jpeg': return 'bi-filetype-jpg'; case 'png': return 'bi-filetype-png'; case 'gif': return 'bi-filetype-gif'; case 'svg': return 'bi-filetype-svg'; case 'pdf': return 'bi-filetype-pdf'; case 'word': case 'docx': return 'bi-file-earmark-word'; case 'xls': case 'xlsx': case 'excel': return 'bi-file-earmark-spreadsheet'; case 'heic': return 'bi-filetype-heic'; case 'webp': return 'bi-filetype-webp'; case 'bmp': return 'bi-filetype-bmp'; case 'ico': return 'bi-file-image'; case 'mp4': return 'bi-filetype-mp4'; case 'mov': return 'bi-filetype-mov'; case 'mp3': return 'bi-filetype-mp3'; case 'wav': return 'bi-filetype-wav'; case 'avi': return 'bi-filetype-avi'; default: return 'bi-file-earmark-image'; } } if (categoryName === 'video') return 'bi-film'; if (categoryName === 'audio') return 'bi-music-note-beamed'; if (categoryName === 'image') return 'bi-file-earmark-image'; return 'bi-gear'; } const formatMeta = getFormatMeta(lowerKey); const connectorIcon = formatMeta.connector === 'arrow' ? 'bi-arrow-right-short' : 'bi-dot'; const iconClass = getIconClass(lowerKey, category); const mark = document.createElement('span'); mark.className = `tool-hero-mark converter-mark converter-mark--${category}`; const iconWrap = document.createElement('span'); iconWrap.className = 'converter-mark__icon'; const icon = document.createElement('i'); icon.className = iconClass; iconWrap.appendChild(icon); mark.appendChild(iconWrap); const formatWrap = document.createElement('span'); formatWrap.className = 'converter-format'; const primary = document.createElement('span'); primary.className = 'format-pill'; primary.textContent = formatMeta.primary; formatWrap.appendChild(primary); if (formatMeta.secondary) { const connector = document.createElement('span'); connector.className = 'format-connector'; const connectorIconEl = document.createElement('i'); connectorIconEl.className = connectorIcon; connector.appendChild(connectorIconEl); formatWrap.appendChild(connector); const secondary = document.createElement('span'); secondary.className = 'format-pill format-pill--secondary'; secondary.textContent = formatMeta.secondary; formatWrap.appendChild(secondary); } mark.appendChild(formatWrap); title.classList.add('tool-hero-title'); title.prepend(mark); })();