Signatur
Beschreibung
ps_shading_pattern() erzeugt ein PostScript-Muster, das auf einer mit ps_shading() definierten Schattierung basiert. Das zurückgegebene Muster-Handle kann anschließend mit ps_setcolor() als Füllfarbe für Formen und Texte eingesetzt werden.
Schattierungsmuster ermöglichen es, Flächen mit weichen Farbverläufen (Gradienten) zu füllen, ohne einzelne Farben explizit zeichnen zu müssen. Dies ist besonders nützlich für Hintergründe, Buttons oder dekorative Elemente in PDF/PostScript-Ausgaben.
Das Muster wird intern im PostScript-Dokumentkontext registriert. Der Parameter optlist erlaubt die Übergabe zusätzlicher Optionen als Zeichenkette im Format von PDFlib-Optionslisten, etwa zur Angabe weiterer Eigenschaften des Musters.
Diese Funktion gehört zur ps-Erweiterung (pslib) für PHP und ist nur verfügbar, wenn PHP mit pslib-Unterstützung kompiliert wurde.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Das PostScript-Dokumenthandle, das von ps_new() zurückgegeben wurde. |
|
| $shading Pflicht | int | Das Handle einer Schattierung, wie es von ps_shading() zurückgegeben wird. |
|
| $optlist Pflicht | string | Eine Optionsliste als Zeichenkette zur Steuerung des Musters. Kann leer sein (""), wenn keine zusätzlichen Optionen benötigt werden. |
Rückgabewert
ps_setcolor() verwendet werden kann, oder false bei einem Fehler.Beispiele
Linearen Farbverlauf als Muster erstellen und anwenden
<?php
$ps = ps_new();
ps_open_file($ps, 'shading_pattern.ps');
ps_set_info($ps, 'Creator', 'Beispiel');
ps_begin_page($ps, 596, 842);
// Schattierung vom Typ 'axial' (linear) von Rot nach Blau erstellen
$shading = ps_shading(
$ps,
'axial',
0, 0, 200, 0, // Startpunkt und Endpunkt
1.0, 0.0, 0.0, // Startfarbe: Rot (RGB)
0.0, 0.0, 1.0, // Endfarbe: Blau (RGB)
'rgb'
);
// Muster aus der Schattierung erzeugen
$pattern = ps_shading_pattern($ps, $shading, '');
// Muster als Füllfarbe setzen
ps_setcolor($ps, 'fill', 'pattern', $pattern, 0, 0, 0);
// Rechteck füllen
ps_rect($ps, 50, 600, 200, 100);
ps_fill($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei mit Schattierungsmuster wurde erstellt.';
?>
Radiales Schattierungsmuster für einen Kreis
<?php
$ps = ps_new();
ps_open_file($ps, 'radial_pattern.ps');
ps_begin_page($ps, 596, 842);
// Radiale Schattierung: von Weiß (Mitte) nach Schwarz (außen)
$shading = ps_shading(
$ps,
'radial',
150, 700, 0, // Innerer Kreis: Mittelpunkt und Radius
150, 700, 100, // Äußerer Kreis: Mittelpunkt und Radius
1.0, 1.0, 1.0, // Startfarbe: Weiß
0.0, 0.0, 0.0, // Endfarbe: Schwarz
'rgb'
);
$pattern = ps_shading_pattern($ps, $shading, '');
ps_setcolor($ps, 'fill', 'pattern', $pattern, 0, 0, 0);
ps_circle($ps, 150, 700, 100);
ps_fill($ps);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Radiales Muster erstellt.';
?>
// Wichtig · Fallstricke
Voraussetzung: PHP muss mit der pslib-Erweiterung kompiliert worden sein (--with-ps). Diese Erweiterung ist nicht standardmäßig aktiviert und auf vielen Hosting-Umgebungen nicht verfügbar.
Das Muster-Handle darf erst nach dem Aufruf von ps_begin_page() verwendet werden. Achte darauf, die Ressourcen am Ende mit ps_delete() freizugeben.
Für moderne PHP-Anwendungen zur PDF-Erzeugung werden häufig Alternativen wie FPDF, TCPDF oder die PDFlib-Erweiterung bevorzugt, da pslib weniger aktiv gepflegt wird.