![ein Kapitel weiter](../weiter.gif)
Wie man ein neues Image erstellt haben sie bereits im Kapitel zuvor kennengelernt....
$myImage = new GD::Image(100,100) or die (...);
Nun ist es auch möglich bereits erstellte Grafiken oder Bilder einzulesen.
Nehmen wir gleich unser Bild vom Beispiel zuvor.......
![Bild:gd1.png](gd1.png)
open(PNG,"./gd1.png") or die ("Konnte gd1.png nicht öffnen\n");
$image = newFromPng GD::Image(PNG) or die ("Fehler bei newFromPng\n");
close(PNG);
Wir öffnen unser Image ganz normal mit einem Filehandle und erstellen anschließend
ein neues Image mittels.........
$image = newFromPng GD::Image(PNG) or die (....);
Dieses Image können wir nun wieder nach belieben bearbeiten.
Denn Filehandle sollten anschließend wieder schließen, da dies nicht
automatisch geschieht. Wollen wir nun gd1.png weiterbearbeiten......
use GD;
# Neues Image erzeugen.
open(PNG,"./gd1.png") or die ("Konnte gd1.png nicht öffnen\n");
$image = newFromPng GD::Image(PNG) or die ("Fehler bei newFromPng\n");
close(PNG);
# Einige Farben bereitstellen.
$black = $image->colorAllocate(0,0,0);
$white = $image->colorAllocate(255,255,255);
# Hintergrund wird transparent und "interlaced".
$image->transparent($white);
$image->interlaced('true');
# Rechteck
$image->rectangle(25,25,75,75,$black);
# und mit Schwarz füllen.
$image->fill(45,45,$black);
$image->fill(55,55,$black);
$image->fill(45,55,$white);
$image->fill(55,45,$white);
# Einen Binär-Stream sicherstellen.
binmode STDOUT;
# Image nach PNG umwandeln und über die Standardausgabe ausgeben.
print $image->png;
So siehts aus :
![Bild: gd2.png](gd2.png)
Übersetzen sie das ganze wieder wie gewohnt......
/usr/bin/perl -w gd.pl > gd2.png
Weitere Möglichkeiten haben sie mittels......
open(GIF,"./gd1.gif") or die ("Konnte gd1.gif nicht öffnen\n");
$image = newFromGif GD::Image(GIF) or die ("Fehler bei newFromPng\n");
close(Gif);
...was genauso angewendet werden kann wie das Beispiel eben. Nur ist das Problem
das die neuere GD-Bibliothek aus Lizensgründen keine Gif-Format mehr
unterstützt. Benötigen sie dieses Format, so sollten sie sich eine älteres
GD-Modul herunterladen.
Weiter Möglichkeiten die ebenso wie newFromPng funktionieren sind....
newFromXbm GD::Image(XBM) #X-Bitmap-Format
newFromJpeg GD::Image(JPG) #jpeg-Format
newFromWmp GD::Image(WBMP) #Window-Bitmap
newFromGd GD::Image(Gd) #gd-Format
Beide erwarten ebenso einen Filehandle. Von letzterem Format *.gd kann
ich abraten, da die Dateien nicht komprimiert werden und recht gross
werden können.
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|