ToolActToolAct

Bildraster-Teilung

Teilen Sie ein Bild in ein 3×3-Raster für Social-Media-Sharing

Bild hochladen

Ziehen Sie ein Bild hierher oder klicken Sie zur Dateiauswahl

Unterstützt JPG, PNG, WebP, BMP, GIF Formate

Was ist eine Bildraster-Teilung?

Der Bildraster-Splitter zerlegt ein Bild in gleich große Kacheln, typischerweise als 3×3-Raster für neun Einzelbilder. Werden diese Kacheln in der richtigen Reihenfolge auf Plattformen wie Instagram, WeChat Moments oder Weibo veröffentlicht, entsteht im Profil oder Feed wieder das große Ausgangsbild. Das ist nützlich für Kampagnenmotive, Produktteaser, Eventankündigungen und visuelle Serien, bei denen der Gesamteindruck erst durch die Anordnung entsteht. Wichtig sind ein geeignetes Ausgangsformat, sichere Ränder für Text und Gesichter sowie die korrekte Upload-Reihenfolge, weil schon eine vertauschte Kachel den Effekt zerstören kann. Vor Veröffentlichung oder Abgabe sollte die Ausgabedatei geöffnet und auf Lesbarkeit, Zuschnitt, Auflösung und fehlende Inhalte geprüft werden.

So geht's

So geht's

  1. Bild hochladen oder per Drag & Drop ablegen
  2. Das Bild wird automatisch in 9 Teile geteilt
  3. Auf ein Teil klicken, um es einzeln herunterzuladen
  4. Auf „Alle herunterladen' klicken, um alle Teile auf einmal zu speichern

Zuschnitt-Hinweise

  • Verwenden Sie ein Bild mit dem gewünschten Seitenverhältnis; die automatische Teilung kann bereits abgeschnittene oder falsch gepolsterte Inhalte nicht wiederherstellen.
  • Alle neun Teile vor der Veröffentlichung in der Vorschau prüfen, besonders wenn Text, Gesichter oder Produktkanten die Teilungslinien kreuzen.

Anwendungsfälle

Ein Bild in ein 3 × 3-Raster aufteilenLade ein Bild hoch und die Seite schneidet es per Canvas in neun gleich große PNG-Kacheln, wobei die Zeilen- und Spaltenreihenfolge als nummerierte Positionen 1 bis 9 erhalten bleibt. Quelldimensionen, die sich nicht glatt durch 3 teilen, werden auf ganze Pixel abgerundet – eine 1081 × 1081 Eingabe produziert dennoch neun 360 × 360 PNGs, wobei eine Pixelreihe am Rand verworfen wird.
Social-Media- oder Puzzle-Kacheln vorbereitenNutze die Originalvorschau, die Abmessungen und die nummerierte Rastervorschau, um den Zuschnitt vor dem Herunterladen einzelner Kacheln für Beiträge, Spiele, Arbeitsblätter oder Layouttests zu bestätigen. Die Kacheln werden als PNG gespeichert – die Dateigröße wächst schnell, wenn die Quelle fotografisch ist; erwäge, zuerst einen Kompressor auf das Raster anzuwenden, wenn das Feed ein 10-MB-Limit hat.
Kacheln einzeln oder als Serie herunterladenKlicke auf eine Rasterzelle, um diese Kachel herunterzuladen, oder lade alle Kacheln mit kurzen Verzögerungen herunter, damit der Browser jede erzeugte Datei verarbeiten kann. Bewahre das Quellbild auf, bis die nummerierten Kacheln in der geplanten Upload-Reihenfolge in der Vorschau geprüft wurden.
Sicherheitsränder vor dem Teilen für die Upload-Reihenfolge hinzufuegenLasse Innenabstand im Quellbild, damit Gesichter, Titel oder Logos nicht genau auf einer Teilungslinie landen – ein einzelnes abgeschnittenes Gesicht zerstört das rekonstruierte Raster im Feed. Einige Pixel Einzug verhindern auch, dass Plattformen wie Instagram die Ränder auf ihr Thumbnail-Seitenverhältnis zuschneiden.
Nummerierte Dateinamen verwenden, um die Upload-Reihenfolge einzuhaltenLade Kacheln mit ihren 1-bis-9-Dateinamen herunter und veröffentliche sie in genau dieser Zeilen- und Spaltenreihenfolge – das Umkehren der Sequenz ist die häufigste Ursache für ein vertauschtes Endraster. Das Sortieren des heruntergeladenen Ordners nach Dateinamen vor der Auswahl im Upload-Dialog vermeidet den häufigen Fehler von unten nach oben, der das rekonstruierte Feed zerstört.

Technisches Prinzip

Der Bildraster-Splitter basiert auf der HTML5 Canvas 2D API (WHATWG HTML Living Standard §4.12, ursprünglich in der W3C HTML5-Empfehlung von 2014 spezifiziert). Die Pipeline hat drei Ebenen: Die Quellpixel in eine CanvasImageSource decodieren, ein Teilrechteck dieser Pixel über die 9-Argument-Variante von drawImage in eine Offscreen-Canvas kopieren und die Offscreen-Canvas über canvas.toBlob() als PNG kodieren. Alles geschieht im Browser-Tab – kein Upload, kein Server, kein Remote-Rendering. Der Decodierungsschritt ist wichtiger, als er aussieht. Eine File von <input type='file'> oder ein Drag-Drop-DataTransferItem wird von FileReader.readAsDataURL (oder im modernen Code von URL.createObjectURL) in eine Blob-URL gelesen, die der Browser dem Image-Loader übergibt. Das Image-Element löst 'load' aus, sobald das Bitmap vom Plattform-Bildcodec decodiert wurde (libpng/libjpeg-turbo/libwebp bei Chromium, das Äquivalent bei WebKit/Gecko). Ein nicht-CORS-Bild, das so geladen wird, gilt als „tainted“ – getImageData würde einen SecurityError werfen – daher verwendet der Splitter nur drawImage und liest nie Pixelparrays zurück, was das CORS-Problem vollständig umgeht. Für sehr große Bilder (>~8K auf der langen Seite) wird das Bitmap in manchen Engines im GPU-Speicher gehalten, sodass canvas.toBlob über einen GPU→CPU-Readback laufen kann, der auf einem Handy etwa 30-100 ms kostet. Der Zuschnitt ist ein einzelner drawImage-Aufruf pro Slice: ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh) – die ersten drei Paare sind das Quellrechteck (sx, sy, sw, sh) und die zweiten drei sind das Zielrechteck auf der Ziel-Canvas. Für einen 3×3-Schnitt eines 1920×1080-Fotos ist das Quellrechteck jedes Slices 640×360, beginnend bei (Spalte*640, Zeile*360). Die Ziel-Canvas wird exakt auf die Slice-Größe gesetzt (640×360) und dann führt canvas.toBlob(blob => ..., 'image/png') den Plattform-PNG-Encoder aus. PNG wird gegenüber JPEG bevorzugt, weil Raster-Slices typischerweise saubere rechteckige Zuschnitte mit scharfem Text und UI-Elementen sind, bei denen verlustfreie Kodierung wichtig ist; JPEGs 8x8-DCT-Blöcke würden Kanten verschmieren. Der Batch-Download verwendet URL.createObjectURL für jeden Blob, einen synthetischen <a download>-Klick und revokeObjectURL nach einer kurzen Verzögerung (normalerweise 60-120 s, die Lebensdauer der Plattform für eine ungenutzte Blob-URL). Für 9 Slices löst dies 9 Download-Events hintereinander aus; manche Browser drosseln mehrere Downloads vom selben Tab, daher verteilt die Seite diese typischerweise mit 50-200 ms setTimeout zwischen den Klicks. Leistungsmäßig ist der Flaschenhals auf einem Handy normalerweise der PNG-Encoder (libpng ist pro Kodierung singlethreaded), nicht drawImage; für 9 1080p-Slices sind 200-500 ms auf einem mittleren Android und 100-200 ms auf einem Desktop-Chromium zu erwarten.

  • Pipeline: FileReader oder URL.createObjectURL → Image-Element → HTMLCanvasElement → drawImage-9-Argument-Zuschnitt → canvas.toBlob('image/png') → URL.createObjectURL + <a download>.
  • drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh) ist die 9-Argument-Überladung, die ein Quellrechteck (sx,sy,sw,sh) in ein Zielrechteck (dx,dy,dw,dh) zuschneidet; dies ist der einzelne API-Aufruf, der den Schnitt durchführt.
  • Quellbilder, die nicht mit CORS-Headern ausgeliefert werden, kontaminieren die Canvas – getImageData würde einen SecurityError werfen, daher liest der Splitter nie Pixelparrays, sondern blittet und kodiert nur.
  • canvas.toBlob ist asynchron und nicht-blockierend (Callback feuert auf einem späteren Microtask) im Gegensatz zum Legacy-canvas.toDataURL, das synchron ist und den Hauptthread bei großen Bildern blockiert.
  • Für einen 3×3-Schnitt eines N×M-Bildes ist jeder Slice (N/3) × (M/3); nicht teilbare Größen produzieren einen 1-Pixel-Rest am rechten/unteren Rand, der mit Math.floor behandelt wird, ggf. mit einem expliziten Rest-Slice.
  • PNG wird gegenüber JPEG für Raster-Slices bevorzugt, weil jeder Slice ein rechteckiger Zuschnitt mit scharfen Kanten (Text, UI, Diagramme) ist, bei dem 8x8-DCT-Blöcke die Grenzlinien verschmieren würden.
  • Batch-Download verwendet URL.createObjectURL pro Blob + <a download>-Klick; Browser drosseln mehrere Downloads vom selben Tab, daher verteilt die Seite die Klicks typischerweise um 50-200 ms und widerruft Blob-URLs nach dem Klick, um Speicher freizugeben.
  • Der Leistungsflaschenhals ist der Plattform-PNG-Encoder (libpng ist pro Kodierung singlethreaded), nicht drawImage; 9 1080p-Slices laufen in ca. 200-500 ms auf mittleren Mobilgeräten und ca. 100-200 ms auf Desktop-Chromium.

Beispiele

Quadratische 1:1-Aufteilung (Instagram-Beitrag)

Eingabe:  1080 x 1080 px
Ausgabe: 9 Kacheln à 360 x 360 px (3x3-Raster)
Verwendung:    Instagram-Karussell-Vorschauen, Xiaohongshu-Rasterbeiträge

Querformat 16:9-Aufteilung (YouTube-Thumbnail)

Eingabe:  1920 x 1080 px
Ausgabe: 9 Kacheln à 640 x 360 px (3x3-Raster)
Verwendung:    YouTube-Thumbnail-A/B-Tests, Banner-Varianten für mehrere Plattformen

Hochformat 9:16-Aufteilung (TikTok / Reels)

Eingabe:  1080 x 1920 px
Ausgabe: 9 Kacheln à 360 x 640 px (3x3-Raster)
Verwendung:    Erkundung von Kurzvideo-Covern, Story-artige Vorschauen

FAQ

Was macht das Image-Grid-Tool?

Es teilt ein Bild in ein Raster aus gleichen Zellen (z. B. 3×3, 2×4), damit du jede Zelle als einzelnes Instagram-Tile posten oder sie als Puzzle/Poster zusammensetzen kannst. Jede Zelle wird als eigene PNG/JPEG-Datei exportiert.

Wird das Bild hochgeladen?

Nein. Das Raster wird komplett in deinem Browser per Canvas berechnet. Die Bilddaten verlassen dein Gerät nicht.

Welche Rastergrößen werden unterstützt?

Übliche Voreinstellungen sind 3×3 (Instagram-Riesentile), 3×1 (Banner-Triptychon), 2×2, 4×4, 9×16. Eigene Zeilen- und Spaltenzahlen sind meist möglich. Das Maximum hängt vom Browser-Speicher ab - sehr große Raster auf einer hochauflösenden Quelle können die Canvas-Größenlimits sprengen.

Wie poste ich die Tiles in der richtigen Reihenfolge auf Instagram?

Instagrams Raster füllt sich von rechts nach links und von oben nach unten (dein erster Post landet also oben rechts, der letzte unten links bei einem 3×3). Die Seite exportiert die Tiles mit den Nummern 1-9 - lade sie in der Reihenfolge 9, 8, 7, 6, 5, 4, 3, 2, 1 hoch, damit das visuelle Layout passt. Manche Seiten zeigen einen Reihenfolge-Hinweis.

Warum sind meine exportierten Tiles leicht versetzt?

Die Quellbildmaße müssen durch die Rastergröße teilbar sein, damit der Schnitt sauber sitzt. Die Seite schneidet entweder den rechten/unteren Rand ab oder skaliert das Bild zur Anpassung; prüfe, welche Option aktiv ist. Wenn du die Tiles physisch montierst, summieren sich Sub-Pixel-Abweichungen über das Raster.

Welches Ausgabeformat und welche Auflösung?

PNG in der Quellauflösung als Standard. Für Instagram sind 1080×1080 Pixel pro Tile das empfohlene Minimum (4320×4320 Quelle für ein 4×4-Raster). Für physische Posterdrucke nimm eine höhere Quellauflösung und ein druckfreundliches Format wie TIFF, falls dein Drucker das unterstützt.

Kann ich Abstände zwischen den Tiles einfügen?

Manche Builds bieten eine 'Gutter'-Option, die jede Zelle mit einem weißen Rand umgibt - so wirkt es wie das Instagram-Raster mit dünnen Lücken. Passe die Gutter-Breite an die Vorschau der Plattform an, wenn das Endergebnis auf dem Bildschirm exakt wie das Quellbild aussehen soll.