Start · Sprachen · PHP · Referenz · ps_setgray

ps_setgray

Funktion

Setzt den aktuellen Grauwert für Füll- und Konturfarben im PostScript-Dokument.

Kategorie: misc

Signatur

ps_setgray(resource $psdoc, float $gray): bool

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

Typ
bool
Beschreibung
Gibt 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.';
?>
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.';
?>
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.