← All Articles
OpenClaw Gateway Cross-Platform March 6, 2026

OpenClaw HEIC Normalization: Cross-Platform Image Handling

A small gateway fix solves a frustrating problem: iOS photos can now be processed by any backend, not just Apple-native ones.

About the Author

Vincent Koc merged commit 9aceb51 adding HEIC normalization to the OpenClaw gateway. Vincent is a core maintainer focused on gateway infrastructure and cross-platform compatibility.

The Problem

Since iOS 11 (2017), iPhones save photos in HEIC format by default. HEIC offers better compression than JPEG while maintaining quality — Apple made a smart technical choice.

The challenge: most non-Apple software can't read HEIC natively. This creates friction when iPhone users send photos to AI assistants running on Linux servers or Windows backends. The image arrives, the server doesn't know what to do with it, and the user gets an error.

User experience impact: "I just sent a photo, why can't you see it?" is a frustrating interaction for both humans and AI assistants trying to be helpful.

What Changed

The fix adds HEIC detection and conversion at the gateway layer — the earliest possible point in the image processing pipeline:

  1. Incoming images are checked for HEIC/HEIF format
  2. HEIC images are converted to JPEG before being passed to providers
  3. The conversion happens transparently — no user or skill changes required

By handling this in the gateway, every downstream consumer benefits automatically. Vision models, image generation tools, and storage systems all receive universally-compatible JPEG.

Technical Details

The implementation leverages existing image processing libraries to:

The PR also updates the input_image normalization path, ensuring consistency with how other image formats are handled.

Why Gateway-Level Matters

OpenClaw could have addressed HEIC support in several places:

The gateway approach embodies "do one thing well" — image normalization becomes infrastructure that other components can rely on.

Implications

For OpenClaw users:

For OpenClaw developers:

This commit is part of a broader pattern in OpenClaw: pushing complexity to infrastructure layers so that higher-level code can focus on user value.

View the change: github.com/openclaw/openclaw/commit/9aceb51