Mit der Fib-Multimediasprache können alle als Rastergrafik darstellbaren Bilder dargestellt werden. Bilder, die als Rastergrafik darstellbar sind, sind die am häufigsten verwendeten Bilder in der elektronischen Datenverarbeitung. Dazu gehören unter anderem Windows Bitmap (BMP, Dateiendung: .bmp), JPEG File Interchange Format (JFIF, Dateiendung: .jpg) und Portable Network Graphics (PNG, Dateiendung: .png).
Allein mit dem Punktelement und dem Listenelement lassen sich bereits alle möglichen Rastergrafiken darstellen.
Beweis:
Eine Rastergrafik (euklidisch, zweidimensional, diskret) kann als Matrix dargestellt werden, in der die Spalte die x-Koordinate, die Zeile die y-Koordinate des Punktes angibt und die Werte die Farben der Punkte angeben. Die Anzahl der Punkte in der Rastergrafik ist endlich. Um diese Punkte durch Fib-Multimediasprache darzustellen, ist ein root-Element zu erzeugen, das die Eigenschaften der Rastergrafik enthält (Größe bzw. Dimensionsdefinitionsbereich usw.). In diesem root-Element ist als Haupt-Fib-Objekt ein Listenelement einzufügen, welches für jeden Punkt des Bildes ein Unterobjekt enthält. Dieses Unterobjekt besteht nur aus einem Eigenschaftselement, das die Farbe des Punktes kodiert, und einem enthaltenden Punktelement, welches die Position des Punktes kodiert. So gibt es für jeden Punkt in der Rastergrafik einen entsprechenden Punkt im erzeugten Fib-Objekt, womit das Fib-Objekt die Rastergrafik repräsentiert.
Eine Abbildung in die Fib-Multimediasprache kann beispielsweise mit dem im Listing 3 dargestellten Algorithmus geschehen (Pseudo-C).
matrix[ x, y]
bestimmt werden. Mit der Funktion getColorVector()
wird aus dem Matrix-Farbwert ein Fib-Farbvektor generiert.
Da die Erweiterung mit Funktionen und anderen Elementen optional ist, wird mit dem angegebenen Algorithmus ein korrektes Fib-Objekt erzeugt.
Zu jedem Punkt in der Matrix gibt es einen gleichfarbigen Punkt im Fib-Objekt mit der entsprechenden Koordinate, aber es gibt keinen Punkt im Fib-Objekt, der nicht in der Matrix vorhanden ist, denn jede Koordinate der Matrix wird mit den zwei for-Schleifen durchlaufen. Dadurch wird für jede Koordinate und damit auch für jeden Punkt in der Rastergrafik ein Punkt im Fib-Objekt eingefügt. Somit gibt es für jeden Punkt in der Rastergrafik einen entsprechenden Punkt in dem Fib-Objekt.
Da nur Koordinaten der Matrix in den for-Schleifen durchlaufen werden und nur für diese die entsprechenden Punkte in das Fib-Objekt eingefügt werden, existieren nur Punkte die auch in der Matrix auftauchen und damit auch nur Punkte im Fib-Objekt die auch in der Rastergrafik vorkommen.
Es gibt also nur die Punkte aus der Originalrastergrafik im Fib-Objekt und nur diese.
Damit repräsentieren das Fib-Objekt und die Originalrastergrafik die gleiche Rastergrafik. Deshalb können alle Rastergrafiken auch mit der Fib-Multimediasprache dargestellt werden.
Ein mit dem Algorithmus generiertes Fib-Objekt, das einer Originalrastergrafik entspricht, stellt eine obere Grenze der minimalen Größe möglicher entsprechender Fib-Objekte da. Das heißt, jede Rastergrafik kann durch ein Fib-Objekt repräsentiert werden, das genauso groß ist, wie ein Fib-Objekt für die Rastergrafik, das mit dem oben aufgeführten Algorithmus generiert wurde, nämlich das generierte Fib-Objekt. Es gibt aber wahrscheinlich noch kürzere Fib-Objekte für die Rastergrafik.