Signatur
Beschreibung
ps_setgray legt den Grauwert fest, der für nachfolgende Zeichenoperationen in einem mit ps_new() erstellten PostScript-Dokument verwendet wird. Der Grauwert gilt sowohl für Füllfarben als auch für Konturfarben (Strokes), sofern keine separate Farbe explizit gesetzt wurde.
Der Wert $gray muss zwischen 0.0 (Schwarz) und 1.0 (Weiß) liegen. Zwischenwerte erzeugen entsprechende Grautöne. Diese Funktion ist Teil der ps-Erweiterung für PostScript-Dokumente und eignet sich besonders für den Druck von Dokumenten, die keine Farbe benötigen.
Typische Anwendungsfälle sind Graustufen-Diagramme, Wasserzeichen, Hintergrundgrafiken oder schlichtes Schwarz-Weiß-Layout. Die Einstellung bleibt aktiv, bis sie durch einen erneuten Aufruf von ps_setgray, ps_setcolor oder einer ähnlichen Farbfunktion überschrieben wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Das PostScript-Dokumentressource-Handle, das zuvor mit ps_new() erstellt wurde. |
|
| $gray Pflicht | float | Grauwert als Gleitkommazahl zwischen 0.0 (Schwarz) und 1.0 (Weiß). |
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. ungültiges Ressource-Handle oder Wert außerhalb des gültigen Bereichs).Beispiele
Grauer Hintergrund und schwarzer Text in einem PS-Dokument
<?php
$ps = ps_new();
if (!$ps) {
die('PostScript-Ressource konnte nicht erstellt werden.');
}
ps_open_file($ps, '/tmp/grau_beispiel.ps');
ps_begin_page($ps, 596, 842); // DIN A4
// Hellgrauer Hintergrund (75 % Weiß)
ps_setgray($ps, 0.75);
ps_rect($ps, 50, 50, 496, 742);
ps_fill($ps);
// Schwarzer Text
ps_setgray($ps, 0.0);
ps_setfont($ps, ps_findfont($ps, 'Helvetica', '', 0), 14);
ps_show_xy($ps, 'Graustufen-Beispiel', 100, 700);
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'PostScript-Datei erfolgreich erstellt.';
?>
Verschiedene Grautöne für Balkendiagramm
<?php
$ps = ps_new();
ps_open_file($ps, '/tmp/balken.ps');
ps_begin_page($ps, 400, 300);
$balken = [0.2, 0.5, 0.8, 1.0];
$x = 50;
foreach ($balken as $grau) {
ps_setgray($ps, $grau);
ps_rect($ps, $x, 50, 60, 150);
ps_fill($ps);
$x += 80;
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
echo 'Balkendiagramm als PS-Datei erstellt.';
?>
// Wichtig · Fallstricke
Hinweis: Werte außerhalb des Bereichs 0.0 bis 1.0 können zu undefiniertem Verhalten oder Fehlern führen. Es empfiehlt sich, den Eingabewert vor dem Aufruf zu prüfen und ggf. auf den gültigen Bereich zu klammen (max(0.0, min(1.0, $gray))).
Die ps-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat kompiliert bzw. installiert werden. Ab neueren PHP-Versionen wird die Erweiterung kaum noch aktiv gepflegt; für neue Projekte sollte eine Alternative wie FPDF, TCPDF oder mPDF in Betracht gezogen werden.