Start · Sprachen · PHP · Referenz · imagecreatefromtga

imagecreatefromtga

Funktion

Lädt eine TGA-Bilddatei (Truevision TARGA) von der Festplatte und gibt ein <code>GdImage</code>-Objekt zurück.

seit PHP 8.3.0 Kategorie: image

Signatur

imagecreatefromtga(string $filename): GdImage|false

Beschreibung

imagecreatefromtga() liest eine TGA-Datei (Truevision TARGA) vom Dateisystem und erzeugt daraus ein GD-Bildobjekt, mit dem weitergearbeitet werden kann. Das zurückgegebene GdImage-Objekt kann anschließend mit allen gängigen GD-Funktionen wie imagecopyresampled(), imagepng() oder imagejpeg() bearbeitet und gespeichert werden.

Das TGA-Format (auch TARGA genannt) wird häufig in der Spieleentwicklung und im Multimediabereich eingesetzt, da es verlustfreie Kompression sowie einen Alphakanal unterstützt. Die Funktion unterstützt dabei gängige TGA-Varianten, darunter unkomprimierte und RLE-komprimierte Dateien.

Die Funktion wurde offiziell in PHP 8.3 als öffentliche API eingeführt; in früheren Versionen war der TGA-Support zwar intern in der GD-Bibliothek vorhanden, jedoch nicht über eine eigene PHP-Funktion zugänglich.

Nach erfolgreicher Nutzung des zurückgegebenen Bildobjekts empfiehlt es sich, den Speicher mit imagedestroy() freizugeben (obwohl dies ab PHP 8.0 durch die automatische Zerstörung beim Garbage-Collecting weniger kritisch ist).

Parameter

Name Typ Default Beschreibung
$filename Pflicht string Pfad zur TGA-Bilddatei, die geladen werden soll. Es kann ein absoluter oder relativer Dateipfad angegeben werden. URL-Wrapper (z. B. http://) werden in der Regel nicht unterstützt.

Rückgabewert

Typ
GdImage|false
Beschreibung
Gibt bei Erfolg ein GdImage-Objekt zurück, das die geladene Bilddatei repräsentiert. Im Fehlerfall (z. B. Datei nicht gefunden, ungültiges Format) wird false zurückgegeben.

Beispiele

TGA-Bild laden und als PNG ausgeben

<?php
// TGA-Datei laden
$image = imagecreatefromtga('/pfad/zum/bild.tga');

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

// Bild als PNG an den Browser senden
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);

TGA-Bild in JPEG konvertieren und speichern

<?php
$eingabe  = '/bilder/spielfigur.tga';
$ausgabe  = '/bilder/spielfigur.jpg';

$image = imagecreatefromtga($eingabe);

if ($image === false) {
    echo 'Fehler: Konnte TGA-Datei nicht öffnen: ' . $eingabe;
    exit(1);
}

// Breite und Höhe des Bildes ermitteln
$breite = imagesx($image);
$hoehe  = imagesy($image);
echo "Bildgröße: {$breite} x {$hoehe} Pixel\n";

// Als JPEG mit Qualität 90 speichern
if (imagejpeg($image, $ausgabe, 90)) {
    echo "Erfolgreich als JPEG gespeichert: {$ausgabe}\n";
} else {
    echo "Fehler beim Speichern des JPEG.\n";
}

imagedestroy($image);
Bildgröße: 512 x 512 Pixel Erfolgreich als JPEG gespeichert: /bilder/spielfigur.jpg

// Wichtig · Fallstricke

Verfügbarkeit: imagecreatefromtga() ist erst ab PHP 8.3.0 als öffentliche Funktion verfügbar. In älteren PHP-Versionen existiert diese Funktion nicht, auch wenn die GD-Bibliothek intern TGA unterstützt.

Sicherheitshinweis: Wird der Dateiname aus Benutzereingaben bezogen, muss dieser unbedingt validiert und/oder auf ein sicheres Verzeichnis begrenzt werden (z. B. mit realpath() und einer Präfixprüfung), um Path-Traversal-Angriffe (../../../etc/passwd) zu verhindern.

Alphakanal: TGA-Dateien können einen Alphakanal enthalten. Soll dieser beim Weiterverarbeiten erhalten bleiben (z. B. bei PNG-Ausgabe), muss imagesavealpha($image, true) aufgerufen werden, bevor das Bild ausgegeben wird.