Menü

Werkzeuge durchsuchenÄnderungsprotokoll

zum Navigieren zum ÖffnenBeschreiben Sie das Problem, nicht das Tool

Bild-zu-WebP-Konverter

Konvertiert in diesem Browser-Tab ein PNG- oder JPEG-Format in ein WebP-Format und meldet genau, wie viele Bytes dadurch eingespart wurden – oder dass dies nicht der Fall war, was bei kleinen, flachen Bildern die ehrliche Antwort ist. Sowohl die Dekodierung als auch die Kodierung laufen auf Ihrem eigenen Rechner.

WebP-Größe
Gespeichert

So funktioniert es

Was das bringt

Wie viel kleiner ist das gleiche Bild als WebP und ob sich der Handel lohnt. Die Antwort besteht aus zwei Zahlen – der Größe der erstellten Datei und der Differenz zu der Datei, die Sie ihr gegeben haben – und die Differenz wird in die Richtung angegeben, in die sie sich tatsächlich bewegt hat.

Die Methode

Die Datei wird anhand ihrer eigenen ersten Bytes und nicht anhand ihres Namens identifiziert, dann in Rohpixel dekodiert und dann erneut kodiert. Drei separate Codecs sind beteiligt und alle drei werden auf dieser Registerkarte ausgeführt: libpng oder mozjpeg, um die Pixel herauszuholen, und libwebp, um sie zurückzusetzen.

Die Qualität wird unverändert an libwebp übergeben. Verlustfrei wird als Level und nicht als Flag übergeben, was libwebp erwartet – die direkte Übergabe des Kontrollkästchens würde stillschweigend jedes Mal „verlustbehaftet“ bedeuten.

Warum hier eine Bibliothek, wenn der JPEG-Konverter seine eigenen Dateien von Hand schreibt?

Der PNG zu JPEG-Konverter auf dieser Website implementiert seine beiden Codecs aus den Spezifikationen, und auf seiner Seite wird ausführlich erklärt, warum. Zwei dieser drei Gründe gelten hier genauso stark: Das browsereigene quality wird als Hinweis und nicht als Vertrag dokumentiert, sodass eine Einstellung in jeder Engine eine andere Datei ergibt, und ein Tool, dessen gesamte Anzeige eine Dateigröße ist, kann diese Größe nicht davon abhängen lassen, welchen Browser Sie geöffnet haben.

Der Unterschied ist der Encoder. Ein JPEG-Encoder ist ein Wochenende sorgfältiger Arbeit an einer veröffentlichten Tabelle. WebP ist Intra-Frame-VP8 – eine Transformation, ein Quantisierer und ein boolescher arithmetischer Entropiekodierer – und ein handgeschriebenes wäre langsamer und schlechter als libwebp, ohne dass jemand darauf hinweisen könnte.

Diese Seite liefert also libwebp, libpng und mozjpeg kompiliert zu WebAssembly. Sie sind Apache-2.0, sie laufen auf Ihrem Rechner und werden nur geladen, wenn Sie etwas konvertieren, und nicht, wenn Sie ankommen: etwa 340 KB, die nichts kosten, bis sie verwendet werden. Was unverändert bleibt, ist der entscheidende Teil: Die Konvertierung ist exakt reproduzierbar, in jedem Browser identisch und benötigt überhaupt kein Netzwerk.

Vor dem Weiterlesen

Ein 69-Byte-PNG mit einem einzelnen Pixel wird in WebP konvertiert. Was kommt dabei heraus?

  • Auf einem Foto, ja. Bei einem Pixel gibt es nichts, was ein besseres Format besser machen könnte.

  • Ja. Bei beiden Dateien handelt es sich fast ausschließlich um Headerdateien.

  • Im Geiste kommt es der Wahrheit nahe, und dieses spezielle Paar landet zufällig ein Byte in der anderen Richtung.

68 Bytes: ein Byte kleiner, d. h. keinerlei Speicherung. Bei beiden Dateien handelt es sich fast ausschließlich um Containerdateien, und in einem einzigen Pixel ist nichts mehr zu komprimieren. Es handelt sich nicht um einen künstlichen Fall – es handelt sich um die kleinste reale Datei, die zur Verfügung steht, und sie wird in der Testdatei dieses Tools bestätigt, sodass diese Seite und der Code nicht davon abweichen können, was am unteren Ende passiert. Wenn Sie es vergrößern, kehrt sich das Bild vollständig um: Ein Foto mit der Qualität 80 ist normalerweise 25 bis 35 Prozent kleiner als das entsprechende JPEG.

Ein gelungenes Beispiel

Ein 69-Byte-PNG eines einzelnen Pixels wird in ein 68-Byte-WebP konvertiert: ein Byte kleiner, was bedeutet, dass überhaupt keine Speicherung erfolgt. Das ist kein künstlicher Fall – es handelt sich um die kleinste tatsächlich verfügbare Datei, und sie wird in der Testdatei dieses Tools bestätigt, sodass diese Seite und der Code nicht davon abweichen können, was mit einer Datei passiert, die zu klein zum Komprimieren ist.

Vergrößern Sie es und das Bild ändert sich vollständig. Ein Foto mit der Qualität 80 ist normalerweise 25 bis 35 Prozent kleiner als das entsprechende JPEG, und ein verlustfrei gespeicherter Flachfarb-Screenshot ist normalerweise kleiner als das PNG. Als Faustregel gilt, dass WebP bei allem gewinnt, außer bei Dateien, die bereits zu klein waren, um noch etwas zu komprimieren.

Was die Zahlen bedeuten

WebP-Größe ist die unten angebotene Datei in Einheiten von 1.024 Byte.

Gespeichert vergleicht es mit der von Ihnen ausgewählten Datei. Eine negative Speicherung wird ebenso deutlich angegeben wie eine positive, da die Dateien, bei denen WebP verliert, genau die Dateien sind, bei denen ein Leser am meisten darüber informiert werden muss.

So wird es gemacht

  1. Lesen Sie die ersten Bytes der Datei und entscheiden Sie, was sie tatsächlich ist. Ein PNG beginnt mit der Signatur 89 50 4E 47; Ein JPEG beginnt mit FF D8 FF. Der Dateiname wird niemals herangezogen, da ein Name ein Anspruch ist.
  2. Dekodieren Sie es in rohe RGBA-Pixel – libpng für ein PNG, mozjpeg für ein JPEG, beide in WebAssembly kompiliert und beide laufen hier und nicht auf einem Server.
  3. Codieren Sie diese Pixel als WebP mit libwebp in der gewählten Qualität. Wenn „Lossless“ aktiviert ist, wird die Qualität völlig ignoriert, da libwebp zu einem anderen Encoder wechselt, der jedes Pixel exakt reproduziert.
  4. Vergleichen Sie die beiden Dateigrößen und geben Sie den Unterschied in jeder Richtung an.

Wovon es ausgeht

  • Qualität ist der eigene Maßstab von libwebp, nicht der des Browsers. Die gleiche Nummer erzeugt in jedem Browser die gleiche Datei, da der Encoder mit dem Tool geliefert wird und nicht von der Engine ausgeliehen wird.
  • Lossless ignoriert die Qualitätseinstellung vollständig. Das ist eher das Verhalten von libwebp als eine hier vorgenommene Vereinfachung.
  • Farbprofile werden nicht übernommen. Ein ICC-Profil in der Quelle wird entfernt und das WebP wird als einfaches sRGB geschrieben, sodass ein Foto mit großem Farbraum flacher als das Original erscheint.
  • Animierte GIF-, AVIF-, HEIC-, TIFF- und SVG-Dateien werden nicht gelesen. Es dauert eine PNG- oder JPEG-Datei, jeweils eine Datei, bis zu 32 MB.
  • Die EXIF-Ausrichtung wird nicht angewendet, sodass ein Foto, das ein Telefon als gedreht markiert, in der Ausrichtung angezeigt wird, in der seine Pixel tatsächlich gespeichert sind.

Fragen

Wird das von mir konvertierte Bild irgendwo hochgeladen?

Nein. Die Datei wird in diesem Browser-Tab gelesen und sowohl die Dekodierung als auch die Kodierung erfolgen in einem Worker auf Ihrem eigenen Computer. Es gibt keinen Server, an den es gesendet werden kann, und der automatisierte Test für diese Seite stellt sicher, dass keine Anfrage die Seite verlässt, während das Tool verwendet wird.

Warum ist mein WebP größer geworden als das Original?

Denn der WebP-Container und die Header kosten einen festen Betrag und bei einem kleinen oder sehr flachen Image ist dieser Overhead mehr als die Komprimierung einspart. Dies geschieht am häufigsten bei Symbolen, einfarbigen Screenshots und allem, was bereits gut komprimiert ist. Das Tool sagt dies, anstatt stillschweigend eine Speicherung zu melden, und bei diesen Dateien ist die richtige Antwort, das zu behalten, was Sie hatten.

Soll ich verlustfrei oder verlustbehaftet wählen?

Verlustbehaftet für Fotos; Verlustfrei für alles mit flachen Farben, scharfen Kanten oder Text – Logos, Diagramme, Screenshots. Verlustfreies WebP übertrifft PNG in der Regel um zwanzig bis dreißig Prozent bei genau dieser Art von Bildern, und verlustfreies WebP übertrifft JPEG bei gleicher Qualität. Die Qualität wird ignoriert, wenn „Lossless“ aktiviert ist.

Welche Qualität sollte ich für ein Foto wählen?

Etwa 80, wo die eigene Dokumentation von libwebp den nützlichen Teil der Kurve angibt. Unterhalb von etwa 60 °C werden die Artefakte auf Haut und Himmel sichtbar; Oberhalb von etwa 90 wächst die Datei schnell, was einen Unterschied darstellt, den die meisten Menschen auf einem Bildschirm nicht sehen können.

Kann WebP jetzt überall sicher verwendet werden?

Bei Browsern ja – Chrome, Firefox, Safari und Edge unterstützen es alle seit Jahren. Das verbleibende Risiko liegt bei anderer Software: Einige Desktop-Editoren, E-Mail-Clients und Content-Systeme öffnen die Datei immer noch nicht. Behalten Sie daher das Original, wenn die Datei an einen Ort verschoben werden muss, an dem es sich nicht um eine Webseite handelt.

Quellen