Gimp versus Inkscape: Was sollte ich benutzen?

Beim Erstellen von Grafiken gibt es einiges zu beachten. Eine wichtige Entscheidung, die noch vor allen anderen Entscheidungen getroffen werden sollte, ist dabei die Wahl des Grafikformates: Eignet sich für die geplante Grafik eher ein vektorbasiertes Format oder doch eher ein Pixelbild? Mit dieser Wahl fällt in den Meisten Fällen auch bereits die Wahl der zu verwendenden Software: Möchte ich eine Pixelgrafik erstellen, ist Gimp die richtige Wahl. Soll es hingegen eine Vektorgrafik werden, kommt Inkscape zum Zug. In diesem Artikel soll es nun darum gehen, von Anfang an die richtige Entscheidung zu treffen, damit später nicht möglicherweise ein böses Erwachen folgt.

Vektorgrafik – was ist das eigentlich?

Die Pixel einer Pixelgrafik sind gut sichtbar, wenn man hineinzoomt.

Am einfachsten lässt sich Vektorgrafik wohl dadurch erklären, was sie nicht ist: Jeder weiß heutzutage von Digitalkameras und dem täglichen Kontakt mit digitalen Bildern, dass diese aus Pixeln aufgebaut sind. Jedes Bild besteht dabei im Prinzip aus einer extrem großen Matrix an Pixeln, von denen jeder wiederum aus drei Farbkomponenten zusammengesetzt ist – Rot, Grün und Blau, die in Kombination eine Farbe ergeben. Und genau das ist es, was Vektorgrafiken nicht sind. Eine reine Vektorgrafik enthält nicht einmal einen Pixel – und dennoch wird sie auf dem Bildschirm mit Pixeln angezeigt. Was ist eine Vektorgrafik also dann?

Die Idee hinter Vektorgrafiken stammt vom Wunsch her, nicht mehr von der Pixelauflösung eines Bildes abhängig sein zu wollen: Nimmt man ein gewöhnliches Pixelbild, das einen Kreis enthält, hat dieser Kreis eine ganz bestimmte Größe. Will man diesen Kreis nun vergrößern oder verkleinern, muss in jedem Fall das Bild skaliert werden, worunter jedoch immer die Bildqualität leidet. Wird der Kreis größer skaliert, muss das Grafikprogramm Pixel „hinzuerfinden“. Wird der Kreis dagegen kleiner skaliert, müssen irgendwie die Pixel, die den Kreis repräsentieren, weniger werden – es müssen also Information aus dem Bild entfernt werden.

Vektorgrafiken versuchen das Problem nun so zu umgehen, dass in einer Vektorgrafikdatei gar nicht mehr die eigentliche Information über die Lage der Pixel des Kreises gespeichert wird. Anstatt dessen besteht eine svg-Datei (svg ist der Quasi-Standard für Vektorgrafiken) aus normalem Text, der die Objekte im Bild beschreibt. Für unser Kreisbeispiel könnte in der svg-Datei also einfach die Information abgelegt sein, dass an der Position (0,0) im Bild ein Kreis mit dem Radius 5 und schwarzer Umrandung von einer Einheit Dicke gezeichnet werden soll. Ein Programm, das diese Grafik nun anzeigen möchte, muss den Text also einlesen, die Informationen verarbeiten und in ein Bild umwandeln.

Und was bringt das jetzt?

Links: kleiner skaliert; Mitte: Original; Rechts: größer skaliert Es ist deutlich zu sehen, dass der kleiner skalierte Kreis deutlich heller ist, als das Original, während beim größer skalierten Kreis vor allem oben und unten starkes Aliasing sichtbar ist.

Mit der obigen Definition ergibt sich ein entscheidender Vorteil: Während ein skaliertes Pixelbild auf jeden Fall immer schlechter aussieht, als das Originalbild, ist eine Vektorgrafik beliebig skalierbar – und das ohne, dass Kanten verpixeln oder Details unscharf werden. Dafür muss das Anzeigeprogramm lediglich alle Werte aus der Textdatei mit dem Skalierungsfaktor multiplizieren.

Wollen wir den oben erwähnten Kreis also um den Faktor zwei Vergrößern, muss das Pixelgrafikprogramm aus der Vorhandenen Menge an Pixeln noch einmal die selbe Menge hinzuerfinden, was zu einem sehr verschwommenen Bild führen wird. Das Vektorgrafikprogramm hat es hingegen einfach: Der skalierte Kreis hat die folgenden Eigenschaften:

  • Position: (0,0) * 2 = (0,0)
  • Radius: 5 * 2 = 10
  • Linienstärke: 1 * 2 = 2

Wie zu sehen ist, wird der Kreis also genau doppelt so groß, während er seine relative Position im Bild beibehält.

Die gleichen Kreise als Vektorgrafik. Nun sind alle Größen gleich scharf. Zudem ist zu erkennen, dass einzelne Objekte auswählbar sind.

Natürlich kann das Vektorgrafikformat nicht nur Kreise darstellen: Auch andere geometrische Formen und sogar Freihandlinien sind möglich. Letztere werden dann einfach als eine Ansammlung von Punkten, den sogenannten Stützstellen in der svg-Datei abgelegt. Um aus diesen Stützstellen wieder eine Linie zu erzeugen ist etwas komplexere Mathematik nötig, deshalb werde ich das an dieser Stelle nicht weiter ausführen. Wer gerne mehr darüber wissen möchte, dem sei der Wikipedia-Artikel zur Spline-Interpolation ans Herz gelegt. Wichtig ist hier lediglich: Die oben gezeigte Skalierung durch einfache Multiplikation aller Eigenschaften mit dem Skalierungsfaktor funktioniert auch mit diesen komplexeren Objekten.

Objekt versus Pixelmatsch

Das Stichwort Objekt liefert hier direkt einen weiteren Vorteil von Vektorgrafiken: Während das Grafikprogramm bei einer Pixelgrafik nach dem Erstellen des Beispielkreises nicht mehr zwischen dem eigentlichen Kreis und den umgebenden Pixeln unterscheiden kann1, ist der Kreis in einer Vektorgrafik ganz klar als solcher definiert und kann von anderen Objekten unterschieden werden (siehe Grafik). Das sorgt dafür, dass der Kreis in der Vektorgrafik ohne Probleme verschoben werden kann, ohne, dass die Pixel der anderen Objekte beeinflusst werden.

Wann sollte ich nun also Vektorgrafiken benutzen?

Die einfache Antwort ist: immer wenn es möglich ist. Aus einer Vektorgrafik kann zu jeder Zeit ein Pixelbild mit beliebiger Auflösung gerendert werden. Ein Pixelbild jedoch in eine Vektorgrafik umzuwandeln geht meist nur von Hand und benötigt sehr viel Zeit.

Es gibt aber auch Ausnahmen: Während sich Logos, Icons und sonstige Bilder mit geometrischen Formen mit absolut scharfen Kanten sehr gut dafür eignen, im oben vorgestellten Vektorformat dargestellt zu werden, gibt es Grafiken, wo dies unmöglich ist: Photos, Renderbilder aus 3D-Softwares oder auch handgemalte Bilder enthalten so viele Informationen und oft kaum bis gar nicht voneinander trennbare Objekte, dass sie einfach nicht als Vektorgrafik darstellbar sind. Der Versuch, das doch zu tun, wird in den meisten Fällen wie der Versuch eines Kindergartenkindes aussehen, eines der Bilder nachzumalen. Diese Art von Bildern ist also der Standard-Anwendungsfall für Pixelgrafikprogramme wie Gimp.

Alle anderen Grafiken hingegen, die scharfe Linien, Text und geometrische Formen enthalten, sind auf jeden Fall immer gut geeignet, als Vektorgrafik angelegt zu werden und werden damit mit Inkscape erstellt.

1Natürlich kann man den Kreis auf einer extra Ebene ablegen und hat dann innerhalb des Grafikprogramms eine ähnliche Funktionalität. Wird das Bild aber exportiert, werden am Ende immer alle Ebenen in eine einzige Ebene zusammengeführt. Soll eine Pixelgrafik also bearbeitet werden, ohne, dass die Projektdatei (bei Gimp wäre das xcf) vorliegt, besteht das genannte Problem auf jeden Fall.