KDE bietet das Kommandozeilenprogramm kwebdesktop an, das vom KDE HTML Widget Gebrauch macht. Dieses Programm lädt eine Webseite und wandelt sie in ein PNG-Bild um. Es wird folgendermaßen aufgerufen:
kwebdesktop x y datei url
x ist die Breite des Bildes in Pixeln, y die Höhe des Bildes in Pixeln, datei der Name der zu erzeugenden PNG-Datei und url die URL der zu ladenden Seite.
In Suse Linux ist kwebdesktop Bestandteil des Paketes kdebase, getestet wurde Version 2.2.1.
Es gibt mehrere fertige Scripte, die die Erzeugung von Diagrammen übernehmen. Eine Auflistung findet sich hier: scripte-diagramme
Mit den Image-Funktionen von PHP lassen sich Grafiken direkt mit PHP-Befehlen bearbeiten (je nach installierter Grafikbibliothek im JPG-, PNG- und/oder GIF-Format). Eine häufig gewünschte Funktion ist das Verkleinern von Bildern, um eine schneller zu ladende Vorschau bieten zu können.
Allerdings ist dies eine sehr rechenintensive Angelegenheit. Mit einer Galerie von 30 Bildern à 200 Kilobyte, die bei jedem Seitenaufruf neu skaliert werden, kann man einen Server leicht an die Lastgrenze bringen (und den Hoster zur Verzweiflung). Daher ist hier ein Caching-Mechanismus unerlässlich, der dafür sorgt, dass jedes Bild möglichst nur einmal berechnet wird (z.B. nach einem Upload oder einer Änderung), und ansonsten das gespeicherte Bild direkt ausliefert.
Christian Lamine zeigt in einem Tutorial , wie man so etwas realisieren kann. Ein ähnliches Script stellt die phpThumbnailer -Klasse dar.
Werden die Bilder in der Form image.php?datei=bild.jpg&x=40&y=30 referenziert, wird natürlich für jedes Bild bei jedem Seitenaufruf ein eigener PHP-Prozess gestartet (auch wenn dieser die Bilddaten nur per fpassthru() durchschiebt). Solange PHP als Webserver-Modul läuft, ist dies weniger dramatisch - gerade bei den großen Hostinganbietern wird aber oft die CGI-Variante von PHP eingesetzt, und da erzeugt dies eine beträchtliche Serverbelastung.
In der Regel wird zur Skalierung die Funktion ImageCopyResized() genutzt. Die Qualität ist hierbei je nach Auflösung und Farbtiefe nicht besonders gut. Ab PHP 4.0.6 gibt es zusätzlich die Funktion ImageCopyResampled() (benötigt mindestens GD 2.0.1), die dank Anti-Aliasing hübschere Ergebnisse liefert. Eine weitere Möglichkeit ist die Nutzung von externen Tools wie ImageMagick , das zwar sehr gute Ergebnisse produziert, bei den meisten Hostern aber vermutlich nicht verfügbar ist.
Die GD-Bibliothek, auf der die Image-Funktionen von PHP basieren, arbeitet intern standardmäßig mit einer Farbpalette von 256 Farben. Damit ist es kaum möglich ein Farb-Foto mit naturgetreuen Farben darzustellen. Abhilfe schafft die Verwendung der Funktionen imagecreatetruecolor() bzw. imagetruecolortopalette() , die jedoch eine Version der GD-Bibliothek >= 2.0.1 sowie eine PHP-Version >= 4.0.6. erfordern.