Start · Sprachen · PHP · Referenz · ps_end_pattern

ps_end_pattern

Funktion

Beendet die Definition eines zuvor mit <code>ps_begin_pattern()</code> gestarteten Musters in einer PostScript-Ressource.

Kategorie: misc

Signatur

ps_end_pattern(resource $psdoc): bool

Beschreibung

ps_end_pattern() schließt die Definition eines PostScript-Musters ab, das zuvor mit ps_begin_pattern() eröffnet wurde. Zwischen diesen beiden Aufrufen werden die Zeichenbefehle platziert, die das Muster definieren – beispielsweise Linien, Rechtecke oder Textelemente.

Muster in PostScript dienen als wiederverwendbare Kacheln, die Flächen füllen oder als Strichmuster verwendet werden können. Sobald ein Muster mit ps_end_pattern() abgeschlossen ist, kann es über ps_setcolor() mit dem Farbraum Pattern aktiviert und anschließend für Füll- oder Zeichenoperationen genutzt werden.

Diese Funktion gehört zur ps-Erweiterung (pecl/ps), die die Erstellung von PostScript-Dokumenten direkt aus PHP ermöglicht. Sie sollte immer paarweise mit ps_begin_pattern() verwendet werden, um korrekt geformte PostScript-Ausgaben zu erzeugen.

Parameter

Name Typ Default Beschreibung
$psdoc Pflicht resource Die PostScript-Ressource, die von ps_new() zurückgegeben wurde und das aktive Dokument repräsentiert.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei einem Fehler, z. B. wenn kein aktives Muster geöffnet ist.

Beispiele

Einfaches Schraffurmuster erstellen und anwenden

<?php
// PostScript-Dokument initialisieren
$ps = ps_new();
ps_open_file($ps, 'muster.ps');
ps_begin_page($ps, 596, 842);

// Muster definieren: 20x20 Pixel große Kachel
$patternId = ps_begin_pattern($ps, 20, 20, 20, 20, 1);

// Diagonale Linie als Musterelement zeichnen
ps_moveto($ps, 0, 0);
ps_lineto($ps, 20, 20);
ps_stroke($ps);

// Muster abschließen
ps_end_pattern($ps);

// Muster als Füllfarbe setzen
ps_setcolor($ps, 'fill', 'pattern', $patternId, 0, 0, 0);

// Rechteck mit dem Muster füllen
ps_rect($ps, 50, 50, 400, 600);
ps_fill($ps);

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

Muster mit Punkten als Kachel

<?php
$ps = ps_new();
ps_open_file($ps, 'punkte.ps');
ps_begin_page($ps, 300, 300);

// 10x10 Kachel definieren
$pid = ps_begin_pattern($ps, 10, 10, 10, 10, 1);

// Kleinen Kreis (Punkt) in der Mitte der Kachel zeichnen
ps_arc($ps, 5, 5, 2, 0, 360);
ps_fill($ps);

ps_end_pattern($ps);

// Muster aktivieren und ein Oval füllen
ps_setcolor($ps, 'fill', 'pattern', $pid, 0, 0, 0);
ps_arc($ps, 150, 150, 100, 0, 360);
ps_fill($ps);

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

// Wichtig · Fallstricke

Wichtig: ps_end_pattern() ist Teil der PECL-Erweiterung ps, die standardmäßig nicht mit PHP ausgeliefert wird und separat installiert werden muss (pecl install ps). Stellen Sie sicher, dass die Erweiterung in der php.ini geladen ist.

Ein Aufruf von ps_end_pattern() ohne vorherigen Aufruf von ps_begin_pattern() führt zu einem Fehler. Verschachtelte Muster werden nicht unterstützt – stellen Sie sicher, dass jede Musterdefinition vollständig abgeschlossen ist, bevor eine neue beginnt.