Signatur
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
- 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
truebei Erfolg zurück,falsebei 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);
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);
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);
// 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.