
libheif
libheif ist ein frei verfügbares Softwarepaket, mit dem Programme Bilder im HEIF- und HEIC-Format öffnen und speichern können. Es steckt unter anderem hinter der Anzeige von iPhone-Fotos auf Linux-Rechnern, in Bildbearbeitungsprogrammen und in Webdiensten.
Digitale Fotos werden in verschiedenen Dateiformaten gespeichert. Eines davon heißt HEIF, oft mit der Dateiendung .heic. Apple benutzt es seit 2017 als Standard für Fotos auf dem iPhone, weil es bei gleicher Bildqualität deutlich kleinere Dateien erzeugt als das ältere JPEG. Damit ein Programm so eine Datei anzeigen kann, muss es ihren komplizierten inneren Aufbau verstehen. Diese Arbeit übernimmt libheif: ein fertiges Stück Software, das andere Programme einbauen können, statt alles selbst zu entwickeln. Solche wiederverwendbaren Softwarepakete nennt man Bibliotheken.
Warum iPhone-Fotos überall geöffnet werden können
Ein Dateiformat nützt wenig, wenn es nur ein Hersteller lesen kann. Als Apple auf HEIC umstellte, konnten viele Windows- und Linux-Programme die Fotos zunächst gar nicht anzeigen. Viele Nutzer bekamen nur ein leeres Vorschaubild oder eine Fehlermeldung. libheif hat diese Lücke geschlossen, weil es kostenlos und quelloffen ist. Quelloffen heißt: Jeder darf den Programmcode ansehen, verwenden und verändern.
Dadurch mussten nicht hunderte Entwicklerteams dasselbe Problem einzeln lösen. Stattdessen bauten sie alle dieselbe Bibliothek ein. Heute nutzen unter anderem GIMP, ImageMagick, Krita und zahlreiche Linux-Distributionen libheif. Auch viele Webserver, die hochgeladene Fotos automatisch in andere Formate umwandeln, greifen darauf zurück.
Das hat aber eine Kehrseite. Wenn sehr viele Programme von einer einzigen Bibliothek abhängen, wird ein Fehler darin zu einem Problem für alle gleichzeitig. Bei libheif wurden mehrfach Sicherheitslücken gefunden, über die ein präpariertes Bild ein Programm zum Absturz bringen konnte. Solche Lücken bekommen eine offizielle Nummer und werden dann in Updates geschlossen. Deshalb tauchen Bibliotheken wie diese regelmäßig in Sicherheitsmeldungen auf, obwohl kaum ein Nutzer ihren Namen kennt.
Container, Codec und die Arbeitsteilung dahinter
Eine HEIF-Datei ist weniger ein Bild als eine Art Behälter. Darin können ein einzelnes Foto stecken, mehrere Bilder, eine kurze Bewegtbildsequenz, ein transparenter Bereich oder Zusatzdaten wie Aufnahmeort und Kameramodell. libheif kümmert sich um diesen Behälter. Es liest die Inhaltsverzeichnisse der Datei und findet heraus, welcher Teil das eigentliche Hauptbild ist.
Das Entpacken der Bilddaten selbst übernimmt libheif nicht allein. Dafür ruft es einen sogenannten Codec auf, ein spezialisiertes Programm zum Komprimieren und Entpacken. Bei HEIC ist das meist libde265 oder x265, beide nutzen das Videoverfahren HEVC. Bei der neueren Variante AVIF kommt ein anderer Codec zum Einsatz. Man kann sich libheif als Bibliothekar vorstellen, der weiß, in welchem Regal ein Buch steht, das Buch aber von einem Übersetzer lesen lässt.
Diese Arbeitsteilung hat einen praktischen Grund. Die Codecs für HEVC sind teilweise durch Patente geschützt. Manche Linux-Distributionen liefern libheif deshalb ohne den passenden Codec aus. Die Bibliothek ist dann zwar installiert, kann HEIC-Dateien aber trotzdem nicht öffnen. Man muss das fehlende Paket von Hand nachinstallieren.
Wo die Bibliothek unsichtbar mitarbeitet
Im Alltag sieht man libheif praktisch nie. Wer auf einem Linux-Laptop ein iPhone-Foto doppelklickt und es einfach angezeigt bekommt, hat die Bibliothek gerade benutzt. Dasselbe gilt für die Vorschaubilder im Dateimanager. Auch Onlinedienste, die HEIC-Bilder in JPEG umwandeln, lassen im Hintergrund oft libheif laufen.
In Nachrichten begegnet der Name meist in zwei Zusammenhängen. Der erste sind Sicherheitsupdates, wenn eine Schwachstelle gemeldet und behoben wird. Der zweite ist die Diskussion um Bildformate im Web, wo AVIF und JPEG XL mit HEIC konkurrieren. libheif unterstützt inzwischen mehrere dieser Formate und wird dadurch auch für Webseitenbetreiber interessant.
Ein häufiger Irrtum ist, libheif sei ein Programm zum Bilder anschauen. Das ist es nicht. Es hat keine Bedienoberfläche und startet nicht von selbst. Es ist Zubehör für andere Software, ähnlich wie ein Motor, der erst in einem Auto einen Zweck erfüllt.