Was passiert bei der Umwandlung von PNG in BMP mit der Transparenz?
5 Min. Lesezeit
Das eigentliche Thema der Umwandlung
Beim Wechsel von PNG zu BMP interessiert die meisten Menschen zuerst die Dateigröße — zu Recht, denn der Unterschied ist frappierend. Doch die Größe ist ein vorhersehbares Ergebnis; ein mathematischer Zuwachs ohne Überraschungen.
Die eigentliche Überraschung erleben Sie bei der Transparenz. Wenn Sie ein transparentes PNG in BMP wandeln und im Zielsystem öffnen, ist es recht wahrscheinlich, dass Sie auf einen Hintergrund treffen, mit dem Sie nicht gerechnet haben. Dieser Beitrag erklärt genau, was dort passiert.
Was ist der Alphakanal?
In PNG kann neben der Farbinformation jedes Pixels auch eine Information zur Deckkraft stehen. Das nennt man den Alphakanal. Der Wert kann in einem Bereich von völlig durchsichtig bis völlig deckend liegen; ein Pixel kann also vollständig sichtbar, vollständig unsichtbar oder halbtransparent sein.
Diese Zwischenwerte sind wichtig. Die geschwungenen Linien am Rand eines Logos werden mit halbtransparenten Pixeln geglättet, damit sie nicht ausgefranst wirken. Ein Schatteneffekt wird stufenweise durchsichtig. Der Alphakanal sagt also nicht nur "hier ist kein Hintergrund", er ist die Anweisung, wie das Bild verrechnet werden soll.
Die Unsicherheit auf der BMP-Seite
Die 32-Bit-BGRA-Variante von BMP kann ein Alpha-Byte pro Pixel aufnehmen. Spezifikationsseitig sieht es also so aus, als ließe sich Transparenz transportieren.
In der Praxis ist die Lage jedoch unübersichtlich. Diese Unterstützung ist unter den lesenden Anwendungen uneinheitlich:
- Manche Programme interpretieren das Alpha-Byte korrekt und zeigen die Transparenz an.
- Viele Programme ignorieren das Alpha-Byte vollständig und zeichnen das Bild deckend.
- Manche Software behandelt dieses Byte auf eine Weise, mit der Sie nie gerechnet hätten.
Diese Unsicherheit rührt von der ursprünglichen Designphilosophie von BMP her. Das Format wurde um der Einfachheit willen geschaffen; die Alpha-Unterstützung blieb eine nachträglich angefügte Erweiterung und wurde nie zu einer allgemeinen Erwartung.
Das Ergebnis lautet: Dass Ihre Datei Transparenzinformationen mitführt, garantiert nicht, dass das Zielprogramm sie nutzt. Und da der Grund für die Umwandlung nach BMP ohnehin meist ein altes System ist, ist die Annahme, dieses System unterstütze kein Alpha, nicht statistisch, sondern logisch richtig.
Wozu werden transparente Flächen?
Wird Alpha ignoriert, werden durchsichtige Bereiche verflacht, also mit einer deckenden Farbe gefüllt. Welche Farbe das ist, steht nicht fest:
- Weiß, die häufigste Voreinstellung.
- Schwarz, bei manchen Werkzeugen und Lesern.
- Eine unerwartete Farbe, denn wenn Alpha ignoriert wird, können die unter dem Pixel verborgenen Farbdaten zum Vorschein kommen.
Besonders ärgerlich wird diese Unsicherheit in folgendem Szenario: Sie wollen ein transparentes Logo auf einem dunklen Panel einsetzen, wandeln um — und auf dem Gerät erscheint rund um das Logo ein weißes Rechteck.
Das versteckte Problem halbtransparenter Ränder
Das Verflachen hat einen weniger bekannten, aber heimtückischeren Nebeneffekt.
Die halbtransparenten Pixel an den geschwungenen Rändern eines Logos werden beim Verflachen mit der darunterliegenden Hintergrundfarbe verrechnet. Ein auf weißem Hintergrund verflachtes Logo trägt an seinen Rändern einen ins Weiß aufhellenden Übergang.
Setzen Sie dieses Logo auf einem dunklen Panel ein, bleibt dieser helle Übergang an den Rändern bestehen und erscheint als feiner Schein ringsherum. Das Bild ist nicht völlig kaputt, wirkt aber auch nicht professionell, und die Ursache ist schwer zu finden, weil die Datei "korrekt" aussieht.
Die richtige Wahl der Verflachungsfarbe bestimmt deshalb nicht nur den Hintergrund, sondern auch die Qualität der Ränder.
Die richtige Methode: nehmen Sie die Kontrolle selbst in die Hand
Der Weg, die Unsicherheit auszuräumen, besteht darin, die Entscheidung nicht dem Werkzeug zu überlassen.
Füllen Sie den Hintergrund vor der Umwandlung selbst. Öffnen Sie das Bild in einem Editor, legen Sie darunter eine einfarbige Ebene in der Farbe, die am Zielort verwendet wird, und verflachen Sie. Nun gibt es keine Transparenz mehr; das Bild sieht genau so aus, wie Sie es wollen, und wenn Sie es von PNG in BMP umwandeln, erleben Sie keinerlei Überraschung.
Dieses Vorgehen hat drei Vorteile:
- Die Hintergrundfarbe ist definitiv Ihre eigene Wahl.
- Halbtransparente Ränder werden mit der richtigen Farbe verrechnet, es entsteht kein Schein-Problem.
- Ob das Zielsystem Alpha unterstützt oder nicht, spielt keine Rolle mehr.
Wenn die Transparenz zwingend erhalten bleiben muss
In manchen Fällen wird Transparenz wirklich gebraucht — soll ein Oberflächenelement über wechselnden Hintergründen erscheinen, hilft ein einfarbiger Hintergrund nicht weiter.
Dann bestehen folgende Möglichkeiten:
Bleiben Sie bei PNG. Akzeptiert das Zielsystem PNG, besteht überhaupt kein Grund umzuwandeln. PNG unterstützt den Alphakanal vollständig und einheitlich.
Untersuchen Sie den eigenen Mechanismus des Zielsystems. Manche älteren Oberflächen verwenden statt eines Alphakanals andere Verfahren: eine separate Maskendatei oder ein Schlüsselfarbverfahren, das eine bestimmte Farbe als transparent behandelt. Ein System kann beispielsweise nach der Regel "behandle leuchtendes Magenta als transparent" arbeiten. Existiert ein solcher Mechanismus, ist es weit zuverlässiger, das Bild danach vorzubereiten, als sich auf den Alphakanal von BMP zu verlassen.
Ändern Sie die Erwartung. Manchmal ist die praktischste Lösung, die Gestaltung so anzupassen, dass sie mit einem festen Hintergrund funktioniert.
Kurz gefasst
Beim Wechsel von PNG zu BMP werden die Farbdaten sicher übertragen, denn beide Formate sind verlustfrei. Was verloren geht, ist die Transparenz, und dieser Verlust ist nicht rückgängig zu machen. Die Alpha-Unterstützung von BMP steht zwar in der Spezifikation, ist in der Praxis aber unzuverlässig; gehen Sie davon aus, dass Ihr Zielsystem sie ignoriert. Am saubersten ist es, das Verflachen selbst vorzunehmen, statt es dem Umwandlungswerkzeug zu überlassen, und die Hintergrundfarbe bewusst zu wählen. Ist Transparenz wirklich zwingend, lautet die richtige Antwort nicht Umwandlung, sondern bei PNG bleiben.
Häufig gestellte Fragen
Unterstützt BMP den Alphakanal nun oder nicht?
Beides stimmt, und genau darin liegt das Problem. Die 32-Bit-BGRA-Variante von BMP kann ein Alpha-Byte pro Pixel aufnehmen, spezifikationsseitig lässt sich Transparenz also transportieren. Diese Unterstützung ist unter den lesenden Anwendungen jedoch uneinheitlich; viele Programme interpretieren das Alpha-Byte überhaupt nicht und zeigen das Bild vollständig deckend an. Manche Druckersoftware verwendet dieses Byte für ganz andere Zwecke. Dass die Datei Transparenzinformationen mitführt, garantiert also nicht, dass das Zielprogramm sie auch nutzt.
In welche Farbe verwandeln sich transparente Flächen?
Das hängt vom verwendeten Umwandlungswerkzeug und vom lesenden Programm ab; eine feste Regel gibt es nicht. Am häufigsten sind ein weißer oder ein schwarzer Hintergrund, aber wenn Alpha ignoriert wird, können in manchen Fällen die darunterliegenden Farbdaten zum Vorschein kommen und ein unerwartetes Bild ergeben. Der einzige verlässliche Weg, diese Unsicherheit auszuräumen, ist, den Hintergrund vor der Umwandlung selbst mit der gewünschten Farbe zu füllen und die Transparenz bewusst zu entfernen.
Ich will mein transparentes Logo auf dunklem Hintergrund einsetzen, was soll ich tun?
Färben Sie den Hintergrund des Logos vor der Umwandlung in genau das Dunkel, das am Zielort verwendet wird. Wandeln Sie ein transparentes Logo direkt in BMP um, wird der Hintergrund höchstwahrscheinlich weiß oder schwarz und erscheint auf dem dunklen Panel als hässliches Rechteck. Hinzu kommt, dass die Randpixel transparenter Logos halbtransparent sind; beim Verflachen werden sie sichtbar, je nachdem mit welchem Hintergrund sie verrechnet wurden. Ein auf dem falschen Hintergrund verflachtes Logo behält an den Rändern einen feinen hellen Schein.
Was ist meine Alternative, wenn die Transparenz zwingend erhalten bleiben muss?
Die beste Alternative ist, gar nicht umzuwandeln und bei PNG zu bleiben; PNG unterstützt den Alphakanal vollständig und einheitlich. Akzeptiert das Zielsystem kein PNG, prüfen Sie, ob dieses System einen eigenen Mechanismus für Transparenz besitzt. Manche älteren Oberflächen arbeiten mit einer separaten Maskendatei oder mit einem Schlüsselfarbverfahren, das eine bestimmte Farbe als transparent behandelt. Existiert einer dieser Mechanismen, ist es weit zuverlässiger, das Bild danach vorzubereiten, als sich auf den Alphakanal von BMP zu verlassen.
Probieren Sie es gleich mit PNG → BMP Dönüştür aus.
PNG → BMP Dönüştür ausprobieren