Start · Sprachen · PHP · Referenz · imagecreatefromwbmp

imagecreatefromwbmp

Funktion

Erstellt ein neues GD-Bildobjekt aus einer WBMP-Datei oder URL und gibt es zurück.

seit PHP 4.0.1 Kategorie: image

Signatur

imagecreatefromwbmp(string $filename): GdImage|false

Beschreibung

imagecreatefromwbmp() liest eine Bilddatei im Wireless Bitmap (WBMP)-Format ein und gibt ein GdImage-Objekt zurück, das für weitere GD-Bildoperationen verwendet werden kann. WBMP ist ein monochromes Bitmap-Format, das ursprünglich für mobile Geräte (WAP) entwickelt wurde.

Der Parameter filename kann ein lokaler Dateipfad oder eine URL sein, sofern der PHP-Konfigurationsparameter allow_url_fopen aktiviert ist. Das zurückgegebene Bild enthält nur zwei Farben (Schwarz und Weiß), da WBMP kein Farbformat ist.

Das erzeugte Bild kann anschließend mit Funktionen wie imagecopy(), imagegif(), imagepng() oder anderen GD-Funktionen weiterverarbeitet oder in andere Formate konvertiert werden. Nach der Verarbeitung sollte das Bild mit imagedestroy() (vor PHP 8.0) freigegeben werden, um Speicher zu sparen.

Diese Funktion ist nützlich, wenn man alte WBMP-Ressourcen verarbeiten oder in moderne Formate konvertieren möchte, etwa im Zusammenhang mit der Migration von WAP-Inhalten.

Parameter

Name Typ Default Beschreibung
$filename Pflicht string Pfad zur WBMP-Datei auf dem Dateisystem oder eine URL (wenn allow_url_fopen in der PHP-Konfiguration aktiviert ist).

Rückgabewert

Typ
GdImage|false
Beschreibung
Gibt bei Erfolg ein GdImage-Objekt zurück (vor PHP 8.0 eine GD-Ressource). Bei einem Fehler – etwa wenn die Datei nicht gefunden wird oder kein gültiges WBMP-Format hat – wird false zurückgegeben.

Beispiele

WBMP-Datei laden und als PNG ausgeben

<?php
// WBMP-Bild laden
$image = imagecreatefromwbmp('bild.wbmp');

if ($image === false) {
    die('Fehler: WBMP-Datei konnte nicht geladen werden.');
}

// Als PNG in den Browser ausgeben
header('Content-Type: image/png');
imagepng($image);

// Speicher freigeben (optional ab PHP 8.0, da GdImage ein Objekt ist)
imagedestroy($image);
?>
(Binäre PNG-Bilddaten werden an den Browser gesendet)

WBMP in PNG-Datei konvertieren

<?php
$quelldatei = 'eingabe.wbmp';
$zieldatei  = 'ausgabe.png';

$image = imagecreatefromwbmp($quelldatei);

if ($image === false) {
    echo "Fehler beim Laden der WBMP-Datei: $quelldatei\n";
    exit(1);
}

$breite  = imagesx($image);
$hoehe   = imagesy($image);
echo "Bildgröße: {$breite}x{$hoehe} Pixel\n";

// Als PNG-Datei speichern
if (imagepng($image, $zieldatei)) {
    echo "Konvertierung erfolgreich: $zieldatei\n";
} else {
    echo "Fehler beim Speichern der PNG-Datei.\n";
}

imagedestroy($image);
?>
Bildgröße: 100x50 Pixel Konvertierung erfolgreich: ausgabe.png

// Wichtig · Fallstricke

Sicherheitshinweis: Wenn filename aus Benutzereingaben stammt, muss die Eingabe sorgfältig validiert werden, um Path-Traversal-Angriffe oder das Laden unerwünschter Dateien zu verhindern. Verwende z. B. realpath() und prüfe, ob der resultierende Pfad innerhalb eines erlaubten Verzeichnisses liegt.

URL-Zugriff: Das Laden von URLs funktioniert nur, wenn allow_url_fopen = On in der php.ini gesetzt ist. Das Aktivieren dieser Einstellung kann ein Sicherheitsrisiko darstellen und sollte in Produktionsumgebungen sorgfältig abgewogen werden.

Format: WBMP ist ein monochromes Format (1 Bit pro Pixel). Das geladene Bild enthält daher nur Schwarz und Weiß, unabhängig von der Farbtiefe des Ziels. Die PHP-GD-Erweiterung muss installiert und aktiviert sein.

Ab PHP 8.0 gibt die Funktion ein GdImage-Objekt statt einer Ressource zurück. Der Aufruf von imagedestroy() ist ab PHP 8.0 nicht mehr notwendig, da das Objekt automatisch durch den Garbage Collector freigegeben wird.