Start · Sprachen · PHP · Referenz · ps_fill_stroke

ps_fill_stroke

Funktion

Füllt den aktuellen Pfad mit der aktuellen Füllfarbe und zeichnet anschließend dessen Umriss mit der aktuellen Strichfarbe.

Kategorie: misc

Signatur

ps_fill_stroke(resource $psdoc): bool

Beschreibung

ps_fill_stroke() kombiniert die Operationen Füllen und Zeichnen des Umrisses (Stroke) in einem einzigen Aufruf. Der aktuell im PostScript-Dokument aufgebaute Pfad wird zunächst mit der eingestellten Füllfarbe ausgefüllt und anschließend wird sein Rand mit der aktuellen Strichfarbe und Strichbreite gezeichnet. Nach dem Aufruf wird der Pfad wie üblich zurückgesetzt.

Diese Funktion ist besonders nützlich, wenn geometrische Formen — etwa Rechtecke, Kreise oder Polygone — sowohl eine sichtbare Fläche als auch einen definierten Rahmen erhalten sollen, ohne zwei separate Aufrufe (ps_fill() und ps_stroke()) durchführen zu müssen.

Füll- und Strichfarbe können unabhängig voneinander über ps_setcolor() gesetzt werden, indem als Typ 'fillstroke', 'fill' bzw. 'stroke' angegeben wird. Dadurch lassen sich Fläche und Umriss optisch klar voneinander abgrenzen.

Die Funktion gehört zur ps-Erweiterung (pslib), die PostScript-Dokumente erzeugt. Sie sollte stets innerhalb eines mit ps_begin_page() geöffneten Seitenblocks aufgerufen werden.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false im Fehlerfall.

Beispiele

Gefülltes und umrahmtes Rechteck erzeugen

<?php
$ps = ps_new();
ps_open_file($ps, 'ausgabe.ps');
ps_begin_page($ps, 595, 842);

// Füllfarbe auf Hellblau setzen
ps_setcolor($ps, 'fill', 'rgb', 0.5, 0.7, 1.0, 0.0);
// Strichfarbe auf Dunkelblau setzen
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.5, 0.0);
// Strichbreite festlegen
ps_setlinewidth($ps, 2.0);

// Rechteck-Pfad aufbauen
ps_rect($ps, 100, 300, 200, 150);

// Füllen und gleichzeitig den Umriss zeichnen
ps_fill_stroke($ps);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);

echo 'PostScript-Dokument erfolgreich erzeugt.';
?>
PostScript-Dokument erfolgreich erzeugt.

Gefüllter und umrahmter Kreis

<?php
$ps = ps_new();
ps_open_file($ps, 'kreis.ps');
ps_begin_page($ps, 595, 842);

// Füllfarbe: Gelb
ps_setcolor($ps, 'fill', 'rgb', 1.0, 0.9, 0.0, 0.0);
// Strichfarbe: Schwarz
ps_setcolor($ps, 'stroke', 'rgb', 0.0, 0.0, 0.0, 0.0);
ps_setlinewidth($ps, 1.5);

// Kreis-Pfad: Mittelpunkt (300|421), Radius 80
ps_arc($ps, 300, 421, 80, 0, 360);

// Füllen und Umriss zeichnen
ps_fill_stroke($ps);

ps_end_page($ps);
ps_close($ps);
ps_delete($ps);

echo 'Kreis-Dokument erzeugt.';
?>
Kreis-Dokument erzeugt.

// Wichtig · Fallstricke

Pfad-Reset: Nach dem Aufruf von ps_fill_stroke() wird der aktuelle Pfad verworfen. Um denselben Pfad mehrfach zu verwenden, kann ps_clip() in Kombination mit einer expliziten Pfad-Wiederholung genutzt werden.

Even-Odd-Regel: Standardmäßig verwendet ps_fill_stroke() die Nonzero-Winding-Regel zum Füllen. Für die Even-Odd-Füllregel steht ps_fill_stroke() mit entsprechenden PostScript-Operatoren nicht direkt zur Verfügung — in solchen Fällen müsste der Pfad über niedrigere Abstraktionsebenen gesteuert werden.

Erweiterung: Die ps-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat kompiliert oder installiert werden (pecl install ps).