Start · Sprachen · PHP · Referenz · ps_open_image_file

ps_open_image_file

Funktion

Öffnet ein Bild aus einer Datei und gibt eine Bild-Ressource für die Verwendung in einem PostScript-Dokument zurück.

Kategorie: misc

Signatur

ps_open_image_file(resource $psdoc, string $type, string $filename, string $stringparam = "", int $intparam = 0): int

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

Typ
int
Beschreibung
Gibt ein Bild-Handle als Ganzzahl zurück, das für Funktionen wie 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.