Bilder/ Grafiken vergrößern und "entpixeln"

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

"Entpixeln" geht nur sehr begrenzt! Der Grund dafür ist, dass ein Bild mit wenig Pixeln auch wenig Bildinformationen enthält. Beim Verkleinern verliert man also Bildinformationen, anders herum kann man beim Vergrößern aber keine dazugewinnen (woher auch?).

Das wird einem klarer wenn man ein Extrembeispiel wählt: Mach ein Foto vom Brandenburger Tor (sagen wir in 12 Megapixel). Verkleinere es auf 2x2 Pixel Größe und speichere es. Danach hat das Bild nur noch 4 Farbwerte aus dem es besteht, anstatt 12 Millionen. Wenn du das Bild wieder auf 12MP vergrößerst müsste das Programm 99,99996% des Inhalts raten um es wiederherstellen zu können. Und das kann es nicht. Immerhin könnte es genauso gut ein Foto vom Eiffelturm sein.

Trotzdem gibts natürlich Vergrößerungsfunktionen, die jedes Bildbearbeitungsprogramm hat. Je nach Programm verwenden sie unterschiedliche (Interpolations-)Verfahren der Vergrößerung (viele bieten sie auch explizit an, so wie Paint.NET):

  • Nearest Neighbour: Beim Vergrößern werden Pixel wiederholt. Bei 2x2 auf 4x4 Vergrößerung wird da also aus einem Pixel ein 2x2 Block der selben Farbe
  • Linear: Entstehen x Pixel zwischen zwei Pixeln a und b, wird je nach Position mehr von Pixel a oder Pixel b genommen, sodass ein gleichmäßiger Farbverlauf zwischen Pixel a und b entsteht
  • Bikubisch: Wie linear, nur dass der Verlauf nicht gleichmäßig ist, sondern anhand einer kubischen Funktion berechnet wird. Dieses Verfahren erzielt meist ganz gute Ergebnisse

Kann man in Paint.NET ausprobieren: einfach ein 2x2-Pixel großes Bild erzeugen mit 4 unterschiedlichen Farben füllen und dann mit dem entspr. Verfahren auf 1000x1000 Pixel vergrößern.

Man kann Bilder nach dem Vergrößern auch noch etwas optimieren durch sinnvolle Anwendung verschiedener Filterfunktionen. Aber auch das geht nur sehr begrenzt (aufgrund der ja fehlenden Bildinformationen) und wirkt schnell unnatürlich.

Falls du dein Clipart vergrößert hast, dass diese "Blöcke" entstanden sind, hat du Nearest Neighbour als Vergrößerungsverfahren benutzt. Versuche es mit einem anderen (z.B. mithilfe Paint.NET).

Das ganze ist ein prinzipielles Problem bei Rastergrafiken. Bei Vektorgrafiken (SVG-Dateien) gibts das Problem nicht. Die Bildinformationen werden hier nicht anhand von Pixeln (Farben) in einem Raster angegeben, sondern sind mathematische Funktionen. Vorteil hiervon ist dass man sie beliebig vergrößern und verkleinern kann ohne Bildinformationen zu verlieren (man wählt ja nur unterschiedliche Parameter für die Funktionen). Aufgrund ihrer Natur eignen sich Vektorgrafiken nicht für Fotos, sondern eher für Form-basierte Grafiken, Logos und... Cliparts! Wenn deine Cliparts als SVG vorliegen (oder du SVG-Versionen irgendwo herbekommen kannst), hast du praktisch gewonnen.

JEDE, aber wirklich JEDE Bildbearbeitung kann ein Bild vergrößern. Aber dabei verliert es zwangsläufig an Qualität. Das ist unvermeidbar, da die "neuen" Bildinformationen aus den alten als Mittelwert berechnet werden.

Ich will Grafiken in hoher Auflösung verwenden können, die eigentlich eine schlechte Auflösung haben.

Das geht nicht.

Die einzige Art Grafiken, die man verlustlos skalieren kann, sind Vektorgrafiken, z.B. im SVG-Format.