Start · Sprachen · PHP · Referenz · imageresolution

imageresolution

Funktion

Liest oder setzt die Auflösung (DPI) eines GD-Bildes.

seit PHP 7.2.0 Kategorie: image

Signatur

imageresolution(GdImage $image, ?int $resolutionX = null, ?int $resolutionY = null): array|bool

Beschreibung

imageresolution() ermöglicht es, die Auflösung eines mit GD erstellten oder geladenen Bildes auszulesen oder zu verändern. Die Auflösung wird in DPI (dots per inch) angegeben und beeinflusst, wie das Bild in druckbezogenen Kontexten dargestellt wird.

Wird die Funktion ohne die optionalen Parameter $resolutionX und $resolutionY aufgerufen, gibt sie ein Array mit zwei Werten zurück: dem horizontalen und dem vertikalen DPI-Wert des Bildes. Werden die Auflösungswerte angegeben, setzt die Funktion die Auflösung des Bildes entsprechend und gibt true zurück.

Wird nur $resolutionX übergeben, wird der Wert sowohl für die horizontale als auch für die vertikale Auflösung verwendet. So lassen sich quadratische DPI-Werte einfach setzen, ohne denselben Wert zweimal angeben zu müssen.

Die Auflösungsinformation ist vor allem beim Export von Bildern in Formate relevant, die DPI-Metadaten unterstützen – etwa JPEG, PNG oder TIFF – da diese beim Drucken oder in Desktop-Publishing-Programmen ausgewertet wird.

Parameter

Name Typ Default Beschreibung
$image Pflicht GdImage Das GD-Bildobjekt, das mit einer Funktion wie imagecreatetruecolor(), imagecreatefromjpeg() o. ä. erzeugt wurde.
$resolutionX int|null null Die horizontale Auflösung in DPI. Wird auch als vertikale Auflösung verwendet, wenn $resolutionY nicht angegeben wird.
$resolutionY int|null null Die vertikale Auflösung in DPI. Optional – wenn weggelassen, wird der Wert von $resolutionX auch für die Y-Achse verwendet.

Rückgabewert

Typ
array|bool
Beschreibung
  • Im Lese-Modus (keine DPI-Argumente): gibt ein indiziertes Array mit zwei Elementen zurück – [0] enthält die horizontale, [1] die vertikale Auflösung in DPI.
  • Im Schreib-Modus (mit DPI-Argumenten): gibt true bei Erfolg zurück, false bei einem Fehler.

Beispiele

Auflösung eines geladenen JPEG-Bildes auslesen

<?php
$image = imagecreatefromjpeg('foto.jpg');

$aufloesung = imageresolution($image);
echo 'Horizontale Auflösung: ' . $aufloesung[0] . ' DPI' . PHP_EOL;
echo 'Vertikale Auflösung:   ' . $aufloesung[1] . ' DPI' . PHP_EOL;

imagedestroy($image);
Horizontale Auflösung: 72 DPI Vertikale Auflösung: 72 DPI

Auflösung eines Bildes auf 300 DPI setzen und als JPEG speichern

<?php
$image = imagecreatetruecolor(800, 600);

// Auflösung auf 300 DPI setzen (horizontal und vertikal)
imageresolution($image, 300, 300);

// Aktuelle Auflösung zur Kontrolle ausgeben
$aufloesung = imageresolution($image);
echo 'Neue Auflösung: ' . $aufloesung[0] . ' x ' . $aufloesung[1] . ' DPI' . PHP_EOL;

// Bild mit 300-DPI-Metadaten speichern
imagejpeg($image, 'hochaufloesung.jpg', 95);
imagedestroy($image);
Neue Auflösung: 300 x 300 DPI

Nur horizontale Auflösung angeben – wird für beide Achsen übernommen

<?php
$image = imagecreatetruecolor(400, 400);

// Nur ein Wert → gilt für X und Y
imageresolution($image, 150);

$aufloesung = imageresolution($image);
echo 'X: ' . $aufloesung[0] . ' DPI, Y: ' . $aufloesung[1] . ' DPI' . PHP_EOL;

imagedestroy($image);
X: 150 DPI, Y: 150 DPI

// Wichtig · Fallstricke

Hinweis zur Bilddarstellung: Die DPI-Angabe beeinflusst nicht die Pixelanzahl des Bildes, sondern nur die Metadaten, die von druckenden oder darstellenden Programmen ausgewertet werden. Ein Bild mit 800×600 Pixeln bleibt 800×600 Pixel groß, unabhängig von der gesetzten Auflösung.

Formatunterstützung: Nicht alle Bildformate speichern DPI-Metadaten. JPEG und PNG unterstützen diese Information; bei anderen Formaten (z. B. GIF) kann die Angabe ignoriert werden.

Standardwert: Neu erstellte GD-Bilder (z. B. via imagecreatetruecolor()) haben standardmäßig eine Auflösung von 96 DPI.