Eric Hinzpeter
ARTIKEL· 24.07.2026· 6 min

Warum ich aufgehört habe, Fotos hochzuladen

Die meisten kostenlosen Bildkonverter laden deine Fotos auf einen fremden Server hoch und scheitern an RAW oder HEIC. Meiner bleibt im Browser.

Jeder kostenlose Bildkonverter, den ich ausprobiert habe, hat mich auf dieselbe Art enttäuscht. Du lädst dein Foto hoch, ohne eine echte Vorstellung davon, was danach damit passiert, wie lange es dort liegt oder wer es sonst noch zu sehen bekommt. Sobald du dann eine RAW-Datei von der Kamera oder ein HEIC vom iPhone reinziehst, geben die meisten Konverter ohnehin auf und schicken dich zu Lightroom. Die kostenlosen unter ihnen sind meistens deshalb kostenlos, weil sie voller Werbung stecken. Das macht die Sache auch nicht besser.

Bei einem einzelnen Urlaubsfoto ist das kein großes Problem. Bei der Arbeit schon, vor allem wenn die Datei das unveröffentlichte Produktfoto eines Kunden ist, das ich keinem fremden Server anvertrauen will. Also hab ich mir einen eigenen Bildkonverter gebaut. Die zwei Dinge, die mich am meisten gestört hatten, wurden der ganze Grund dafür. Es wird nichts hochgeladen. Und RAW sowie HEIC funktionieren, ohne dass ich eine andere App öffnen muss.

Das Uploadproblem, vor dem dich keiner warnt

Wer bei Google „HEIC in JPG umwandeln“ eingibt, bekommt überall dasselbe Muster zu sehen. Du ziehst dein Foto auf die Seite, es verschwindet für einen Moment, und eine konvertierte Datei kommt zurück. Du siehst dabei nie, wo genau die Verarbeitung passiert. Irgendwo in dieser kurzen Lücke hat dein Foto deinen Rechner verlassen. Es lag auf einem Server, von dem du noch nie gehört hast, unter einer Datenschutzerklärung, die du nicht gelesen hast.

Meistens ist das harmlos. Ich wollte trotzdem nicht jedes Mal darüber nachdenken müssen, vor allem nicht, wenn die Datei das unveröffentlichte Produktfoto eines Kunden war, auf dem Weg zu einem kostenlosen Tool, dessen Geschäftsmodell ich nicht durchschaue. Die einzige echte Lösung: kein Server in der Kette.

Meine Version liest die Datei mit dem FileReader des Browsers. Sie zeichnet sie in ein unsichtbares Canvas und erzeugt das konvertierte Bild mit canvas.toBlob(), alles im selben Tab, den du sowieso gerade offen hast. Die Datei wird nie zu einer Netzwerkanfrage. Es gibt nichts hochzuladen, weil es nirgendwo hinzuladen gibt.

RAW und HEIC sind die eigentliche Lücke

Das zweite Problem war enger als das erste, aber es nervte mehr. Viele Konverter kommen mit JPG, PNG und WebP klar. Fast keiner rührt eine RAW-Datei von der Kamera an, und die wenigen freien HEIC-Konverter, die es gibt, enttäuschen oft auf eine andere Art. Manche stauchen die Auflösung ohne Vorwarnung zusammen. Andere komprimieren so stark, dass am Ende ein sichtbar schlechteres Bild rauskommt, als die Kamera selbst als Vorschau mitliefert.

Diese Lücke wiegt schwerer, als sie klingt. Genau diese Dateien brauchen eine Konvertierung am dringendsten. Eine DNG von der Drohne oder eine CR2 von der Canon lässt sich nicht einfach so posten oder verschicken. Genauso wenig ein HEIC vom iPhone, das die meiste Software abseits von Apple bis heute nicht öffnet. Der übliche Rat lautet „öffne es halt in Lightroom“. Der ist gut, wenn du Lightroom besitzt und nur schnell ein JPG aus einem Foto brauchst. Er ist schlecht, wenn du es nicht besitzt oder einen Ordner mit vierzig Dateien vor dir hast.

Der Konverter musste also DNG, CR2, CR3, NEF, ARW, RAF, ORF und RW2 lesen können, die RAW-Formate von Adobe, Canon, Nikon, Sony, Fujifilm, Olympus und Panasonic. Dazu kamen HEIC und HEIF vom iPhone. Am Ende sollte daraus ein normales WebP, AVIF, JPG oder PNG werden. Das Ganze ohne Server im Hintergrund hinzubekommen, war die schwierigere Hälfte des Baus. Acht RAW-Formate und zwei HEIC-Varianten sauber zu erkennen und zu entschlüsseln, noch dazu ohne Cloud-Rechenleistung im Rücken, kostete am Ende mehr Zeit als die eigentliche Konvertierungslogik.

Wie der Browser aus einer Datei ein neues Bild macht

Sobald eine Datei erst mal in Pixel zerlegt ist, ist die eigentliche Konvertierung der leichte Teil. Dafür reicht canvas.toBlob(mime, quality), eine Methode, die in jedem modernen Browser eingebaut ist. Sie schreibt WebP, AVIF, JPG oder PNG in der gewünschten Größe raus. Das Ergebnis ist ein Blob, ein Objekt im Speicher des Browsers, keine Datei auf einer fremden Festplatte. Drei Qualitätsstufen stehen zur Wahl: 0,95 für minimale Kompression, 0,85 als ausgewogener Standard und 0,65, wenn die Dateigröße wichtiger ist als jedes letzte Pixel. Zwischen den Stufen siehst du die Datei in Echtzeit schrumpfen.

Für ein einfaches JPG oder PNG ist damit schon alles gesagt. Datei lesen, zeichnen, toBlob aufrufen, fertig. RAW und HEIC brauchen vorher eine echte Dekodierung. Genau da kommen zwei größere Bibliotheken ins Spiel.

Decoder, die nur laden, wenn du sie wirklich brauchst

HEIC-Unterstützung braucht eine Bibliothek namens heic2any, weil außer Safari kaum ein Browser einen HEIC-Decoder mitbringt. Sie bei jedem Seitenbesuch zu laden wäre Verschwendung, für den viel häufigeren Fall einer JPG-Konvertierung. Deshalb wird sie erst mit einem dynamischen import() geladen, wenn du zum ersten Mal eine .heic-Datei reinziehst. Rührst du HEIC nie an, erreicht der Code deinen Browser auch nie. Für den weit häufigeren Fall, ein simples JPG in ein WebP zu verwandeln, lädt dadurch kein zusätzliches Byte.

RAW-Dateien folgen demselben Prinzip, nur mit einer größeren Ladung. Eine RAW-Datei ist noch kein fertiges Bild, sondern rohe Sensordaten. Jedes Pixel muss erst aus den Werten der Nachbarpixel rekonstruiert werden, dem sogenannten Demosaicing. Genau das übernimmt libraw-wasm, eine WebAssembly-Version der LibRaw-Bibliothek, rund 1,4 MB schwer, sobald du eine DNG oder eine andere RAW-Datei reinziehst. Es demosaikt in einem Web Worker, mit dem Weißabgleich, den die Kamera selbst gespeichert hat. Der Tab bleibt dabei reagierfähig, während eine 40-Megapixel-Datei im Hintergrund dekodiert wird. Ein paar Sekunden pro Datei sind dabei normal. Aus rohen Sensordaten ein Bild zu machen ist echte Rechenarbeit. Sie passiert auf deinem Rechner statt auf einem fremden Server.

Manche der neuesten iPhone-ProRAW-Dateien nutzen eine JPEG-XL-Kompression, die der WebAssembly-Decoder noch nicht auslesen kann. Dann greift das Tool auf die Vorschau zurück, die jede RAW-Datei in voller Auflösung selbst mitbringt. So bekommst du trotzdem ein brauchbares Bild, statt einer Fehlermeldung.

Wann sich der Konverter wirklich lohnt

Am häufigsten brauche ich ihn, wenn nach einem Shooting ein Ordner voller RAW-Dateien auf mich wartet und ich nur schnell teilbare JPGs will. Oder wenn mir jemand ein iPhone-HEIC schickt und ich ein WebP brauche, das überall funktioniert, ohne dass ich einen Bildeditor öffnen muss. Genauso schnell verkleinere ich damit einen ganzen Ordner PNGs zu WebP, bevor sie auf eine Seite gehen. Ohne mich zu fragen, wo sie zwischendurch hingelangt sind. Jedes Mal geht es um dieselbe Frage: Wie komme ich am schnellsten von der Rohdatei zu einem Bild, das ich verschicken kann, ohne dafür ein Konto zu brauchen oder in einer Warteschlange zu landen.

Der Bildkonverter ist einer von zwölf kostenlosen Browser-Tools, die ich selbst gebaut habe. Alle laufen nach demselben Prinzip: clientseitig, ohne Upload. Wenn dich interessiert, wie die RAW-Dekodierung mit dem Rest davon zusammenpasst, steht das dort im Detail.

Dasselbe Prinzip steckt hinter zwei anderen Tools, die ich aus demselben Grund gebaut habe. Statt eine allgemeine App zu nehmen und mich mit dem abzufinden, was sie zufällig priorisiert, hab ich das Werkzeug exakt auf mein Problem zugeschnitten. So ist mein eigener JLPT-Trainer entstanden, statt weiter gegen Duolingo anzukämpfen. Und so ist auch das WordPress-Theme entstanden, das ich von Grund auf neu gebaut habe, statt einen Page-Builder zu etwas zu zwingen, was er nicht wollte.

Der Konverter selbst läuft unter /tools/webp-converter. Zieh eine RAW-Datei rein, und du bekommst ein JPG oder WebP auf der anderen Seite, ohne irgendetwas anderes zu öffnen.

FAQ

Lädt der Bildkonverter meine Fotos irgendwohin hoch?
Nein. Jede Konvertierung passiert im Browser-Tab, mit dem Canvas-Element und einem WebAssembly-RAW-Decoder. Beide laufen lokal, auf deinem Rechner. Von der Datei geht nichts nach außen, weder die Pixel noch der Dateiname. Im Netzwerk-Tab der Browser-Entwicklertools siehst du selbst, dass keine Anfrage mit deinem Bild rausgeht.
Welche RAW-Formate unterstützt das Tool wirklich?
DNG, CR2, CR3, NEF, ARW, RAF, ORF und RW2. Das deckt Adobes eigenes Format ab, dazu Kameras von Canon, Nikon, Sony, Fujifilm, Olympus und Panasonic. Zusätzlich kommen HEIC und HEIF direkt vom iPhone dazu.
Warum dauert die Umwandlung einer RAW-Datei ein paar Sekunden statt sofort zu gehen?
Eine RAW-Datei ist noch kein fertiges Bild, sondern rohe Sensordaten. Jedes einzelne Pixel muss erst aus den Werten der Nachbarpixel rekonstruiert werden, das nennt man Demosaicing. Das Tool erledigt das in einem Web Worker, damit eine 40-Megapixel-Datei die Seite dabei nicht blockiert.
Ersetzt das Tool Lightroom?
Nein, das würde ich auch nicht behaupten. Es dekodiert RAW-Dateien mit dem von der Kamera gespeicherten Weißabgleich und hört dort auf. Belichtung, Farbkorrektur und Objektivkorrekturen fasst es nicht an, dafür fehlt schlicht die Bildbearbeitung dahinter. Es geht darum, aus einer RAW-Datei schnell ein teilbares JPG oder WebP zu machen, nicht darum, sie zu bearbeiten.
Warum lädt das Tool den RAW- oder HEIC-Decoder nur manchmal nach?
Beide sind schwer: Allein der RAW-Decoder bringt rund 1,4 MB WebAssembly mit. Würde einer der beiden bei jedem Besuch mitladen, würde das die Seite für den viel häufigeren Fall ausbremsen, ein einfaches JPG oder PNG umzuwandeln. Deshalb lädt das Tool sie erst in dem Moment nach, in dem du die passende Datei reinziehst.
Was passiert mit iPhone-Fotos im neueren ProRAW-Format von Apple?
Manche der neuesten ProRAW-DNGs nutzen eine JPEG-XL-Kompression, die der WebAssembly-RAW-Decoder noch nicht entpacken kann. In dem Fall greift das Tool auf die Vorschau im Vollformat zurück, die die Kamera direkt in der Datei mit einbettet. So bekommst du trotzdem ein brauchbares Foto.

Geschrieben von

Porträt von Eric Hinzpeter

Eric Hinzpeter

Eric Hinzpeter, Senior B2B Content Strategist. Er baut KI-Agenten und Marketing-Automatisierung für den Produktivbetrieb und schreibt hier auf, was dabei herauskommt.

Über michLinkedIn