Start · Sprachen · PHP · Referenz · ps_shading_pattern

ps_shading_pattern

Funktion

Erstellt ein Füllmuster auf Basis einer zuvor definierten Schattierung für die Verwendung in PostScript-Dokumenten.

Kategorie: misc

Signatur

ps_shading_pattern(resource $psdoc, int $shading, string $optlist): int|false

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

Typ
int|false
Beschreibung
Gibt ein Handle (Ganzzahl) auf das erzeugte Schattierungsmuster zurück, das mit 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.';
?>
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.';
?>
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.