Quiq::Gd::Component - Basisklasse aller Component-Klassen (abstrakt)
Quiq::Hash
Die von dieser Klasse abgeleiteten Klassen realisieren Grafiken oder Grafik-Elemente, die mittels GD auf ein Rasterbild gezeichnet werden können. Dies geschieht in zwei Schritten:
Definition der Grafik
Zeichnen der Grafik
Diese Aufteilung hat gegenüber einem direkten Zeichnen den Vorteil, dass nach Schritt 1 Eigenschaften des Grafik-Objekts abgefragt werden können, die u.U. schwer zu ermitteln sind, wie z.B. die Breite und die Höhe. Grafiken mit dynamischen Eigenschaften können dann leichter zu einem resultierenden Ganzen kombiniert werden.
Beispiel: Eine Plot-Grafik, bestehend aus Graphen, Achsen, Beschriftungen, einem Gitter usw.
$g = $class->new(@keyVal);
$width = $g->width; $height = $g->height; ...
$g->render($img,$x,$y,@keyVal); # $x,$y,@keyVal sind optional
Als Eigenschaften @keyVal können hier Eigenschaften des Bildes $img, wie z.B. Farben, gesetzt werden. Diese sind u.U. zum Zeitpunkt der Instantiierung des Grafik-Objektes noch nicht verfügbar.
$class->render($img,$x,$y,@keyVal);
Ein unmittelbares Zeichnen ist auch möglich, indem die Methode render() als Klassenmethode unter Angabe aller Eigenschaften @keyVal des Grafik-Objekts aufgerufen wird.
render()
$self = $this->self(@keyVal);
Liefere die Referenz auf das Grafik-Objekt. Die Methode self() wird in den render()-Methoden der abgeleiteten Klassen genutzt. Denn diese können sowohl als Objekt- wie auch als Klassenmethode aufgerufen werden. Die Methode sorgt dafür, dass das Objekt im Falle eines Aufrufs als Klassenmethode mit den Attributen @keyVal instantiiert wird. Andernfalls werden die Attribute auf dem bestehenden Objekt gesetzt.
Das Gerüst der Methode render() in den abgeleiteten Klassen sieht unter Verwendung der Methode self() so aus:
sub render { my $this = shift; my $img = shift; my $x = shift || 0; my $y = shift || 0; # @_: @keyVal my $self = $this->self(@_); # Grafik rendern ... return; }
$width = $g->width;
Liefere die Breite der Grafik. Diese Basisklassenmethode liefert den Wert des Attributs width.
width
$height = $g->height;
Liefere die Höhe der Grafik. Muss die Höhe berechnet werden, überschreibt die Subklasse die Methode.
1.186
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.