Signatur
Beschreibung
ps_open_image_file() lädt ein Bild aus einer Datei und stellt es für die weitere Verwendung in einem mit der PS-Erweiterung erzeugten PostScript-Dokument bereit. Die Funktion gibt eine Ganzzahl zurück, die als Handle für das geladene Bild dient und später an Funktionen wie ps_place_image() übergeben werden kann.
Der Parameter type gibt das Bildformat an (z. B. "png", "jpeg" oder "eps"). Nicht alle Formate werden gleichermaßen unterstützt; JPEG und EPS sind die gängigsten Formate im PostScript-Kontext.
Nach der Verwendung des Bildes sollte es mit ps_close_image() wieder freigegeben werden, um Ressourcen zu schonen. Wird das Bild mehrfach auf verschiedenen Seiten oder an verschiedenen Positionen benötigt, genügt es, es einmal zu öffnen und das Handle mehrfach zu verwenden.
Diese Funktion ist Teil der PS-Erweiterung (pslib) und setzt voraus, dass die entsprechende PECL-Erweiterung installiert und aktiv ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $psdoc Pflicht | resource | Die Ressource des PostScript-Dokuments, wie sie von ps_new() zurückgegeben wird. |
|
| $type Pflicht | string | Der Typ des Bildes als Zeichenkette, z. B. "png", "jpeg" oder "eps". |
|
| $filename Pflicht | string | Der Pfad zur Bilddatei auf dem Dateisystem. | |
| $stringparam | string | Ein optionaler Zeichenketten-Parameter, der je nach Bildtyp unterschiedliche Bedeutung haben kann (meist leer gelassen). | |
| $intparam | int | 0 | Ein optionaler Ganzzahl-Parameter, der je nach Bildtyp unterschiedliche Bedeutung haben kann (meist 0). |
Rückgabewert
ps_place_image() verwendet werden kann. Im Fehlerfall wird 0 zurückgegeben.Beispiele
JPEG-Bild in ein PostScript-Dokument einbinden
<?php
$ps = ps_new();
ps_open_file($ps, 'ausgabe.ps');
ps_set_info($ps, 'Creator', 'Beispielskript');
ps_begin_page($ps, 595, 842);
// Bild aus Datei öffnen
$bildHandle = ps_open_image_file($ps, 'jpeg', '/pfad/zum/bild.jpg');
if ($bildHandle) {
// Bild auf der Seite platzieren (x=100, y=600, Breite=200, Höhe=150)
ps_place_image($ps, $bildHandle, 100, 600, 1.0);
// Bild-Ressource freigeben
ps_close_image($ps, $bildHandle);
} else {
echo 'Bild konnte nicht geöffnet werden.';
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>
PNG-Bild mehrfach auf einer Seite verwenden
<?php
$ps = ps_new();
ps_open_file($ps, 'mehrfach.ps');
ps_begin_page($ps, 595, 842);
$bildHandle = ps_open_image_file($ps, 'png', '/pfad/zum/logo.png');
if ($bildHandle) {
// Dasselbe Bild-Handle an verschiedenen Positionen verwenden
ps_place_image($ps, $bildHandle, 50, 750, 0.5);
ps_place_image($ps, $bildHandle, 300, 750, 0.5);
ps_place_image($ps, $bildHandle, 50, 500, 1.0);
ps_close_image($ps, $bildHandle);
}
ps_end_page($ps);
ps_close($ps);
ps_delete($ps);
?>
// Wichtig · Fallstricke
Voraussetzung: Die PS-Erweiterung (pslib) muss als PECL-Paket installiert sein. Sie ist nicht Teil der PHP-Standardinstallation. Unter Linux kann sie über pecl install ps installiert werden.
Formatunterstützung: Nicht alle Bildformate werden von jeder pslib-Version unterstützt. JPEG wird am zuverlässigsten unterstützt. PNG-Unterstützung hängt davon ab, ob pslib mit libpng kompiliert wurde.
Ressourcen: Geöffnete Bilder sollten nach der Verwendung stets mit ps_close_image() geschlossen werden, um Speicherlecks zu vermeiden.