![ein Kapitel weiter](../weiter.gif)
Mittels.......
print $image->png;
...wir das PNG-Format schon auf die Standardausgabe geschreiben. Die Standardausgabe haben wir ja mittels....
perl -w gd.pl > image.png
..in eine Datei umgeleitet.
Man muss sich hier selbst um die Ausgabe kümmern. Dabei geht dies
auch komfortabler....
use GD;
# Neues Image erzeugen.
$image = new GD::Image(100,100) or die ("Fehler bei newFromPng\n");
# 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(0,0,99,99,$black);
$image->rectangle(10,10,89,89,$white);
$image->fill(50,50,$white);
$image->rectangle(30,30, 69,69,$black);
$image->fill(50,50,$black);
$png = $image->png;
open(PNG,"> gd3.png") or die ("Fehler bei open.....\n");
# Einen Binär-Stream sicherstellen.
binmode PNG;
print PNG $png;
close(PNG);
So siehts aus :
![Bild: gd3.png](gd3.png)
Nun können sie das Programm ohne Dateiumleitung übersetzen. Wir haben
das ledeglich mittels.........
$png = $image->png;
open(PNG,"> gd3.png") or die ("Fehler bei open.....\n");
# Einen Binär-Stream sicherstellen.
binmode PNG;
print PNG $png;
close(PNG);
...erreicht. Wir erstellen einfach mit open eine *.png-Datei unserer Wahl.
binmode benötigen wir wieder für M$. Anschließend schreiben wir in den
Stream mittels print. Die Zuweisung mittels.....
$png = $image->png;
hätten wir uns auch ersparen können und gleich mittels.....
print PNG $image->png;
...in den Stream zu schreiben. Wollen sie Ihr Bild gleich noch mit
einem Grafikprogramm ansehen können sie dies so erledigen.......
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);
#Bild bearbeiten
# Einen Binär-Stream sicherstellen.
binmode STDOUT;
# Image nach PNG umwandeln
$image->png;
open(X,"| xview ./gd1.png") or die ("Konnte xview nicht öffnen\n");
close(X);
Hier leiten wir das Bild einfach an eine Pipe zu dem Programm xview weiter.
So ist es natürlich möglich eine Datei auch anderwohin zu leiten.....
$png_data = $myImage->png;
open (DISPLAY,"| display -") or die;
binmode DISPLAY;
print DISPLAY $png_data;
close DISPLAY;
...zum Beispiel zum Druckerspool zum ausdrucken.
Nun ich denke ich muss Ihnen nichts über die Grundlagen von Perl
erzählen. Außer PNG-Dateien können natürlich auch andere Formate
ausgeben werden (die Anwendung ist wieder die selbe wie in unserem
Beispiel eben, nur eben mit einem anderen Präfix).......
$image->jpeg
Hiermit geben wir ein Jpeg-Grafik aus. Die Qualität können wir auch noch
beeinflussen mittels....
$image->jpeg(50);
Hier erstellen wir ein Jpeg-Datei mit 50%-iger Qualität. Mehr ist besser und
weniger schlechter. Beispiel.......
$jpeg = $image->jpeg(50);
open(JPEG,"> gd4.jpeg") or die ("Fehler bei open.....\n");
# Einen Binär-Stream sicherstellen.
binmode JPEG;
print JPEG $jpeg;
close(JPEG);
Weitere Dateiformate wären....
$image->gd; #gd-Format
$image->gd2; #gd2-Format
$image->wbmp; #WBMP-Format
![ein Kapitel weiter](../weiter.gif)
© 2001,2002 Jürgen Wolf
|