phpbar.de logo

Mailinglisten-Archive

[php] Aufloesung einer Grafikdatei ermitteln

[php] Aufloesung einer Grafikdatei ermitteln

Simon Bienlein s.bienlein at gmx.de
Don Jun 21 10:35:34 CEST 2007


Hallo Yannik,

> Mal im Ernst: Wieviel DPI ein Bild hat hängt vom Ausgabemedium ab
> (also zum Beispiel wieviele Pixel dein Bildschirm auf einem Zoll
> unterbringt), wovon kein Darstellungsprogramm was wissen kann.
>
> In JPG, TIFF und BMP kannst du trotzdem eine Auflösung in DPI angeben.
> Ich schätze mal, dass dies verwendet wird um beispielsweise einen
> Drucker damit anzusteuern.

warum diese Angaben in den Dateien hinterlegt werden, kann ich auch
nicht sagen. Ich weiß nur, dass man in Photoshop oder anderen Programmen
diese Werte beim Speichern hinterlegen und auslesen kann.

> Aber was willst du damit in php machen?

Ein Kunde möchte, dass die Qualität der hochgeladenen Grafikdateien
anhand der DPI beurteilt wird. Dem Anwender soll eine grobe Einstufung
gegeben werden, wie gut sich die Datei für den Druck auf eine bestimmte
Größe eignet.

> In JPG werden die DPI-Informationen in den Bytes 15 und 16
> gespeichert. So kommst du damit an die DPI-Information in JPEGs...
> Ungetestet:

Vielen Dank für deine Funktion und die detailierten Infos über das
Grafikformat. So tief bin ich da nicht eingestiegen. Hier Meine
Test-Datei

<?php
function jpgDPI($dateiname)
{
  $datei = fopen($dateiname, 'r');
  fseek($datei,0xF,SEEK_SET);
  $size =unpack('n',fread($datei,2));
  fclose($datei);
  return $size;
}
$r = jpgDPI("test.jpg");
print_r($r);
?>

Das Resultat sieht so aus:

Array
(
    [1] => 18432
)

Wenn ich das Tool identify aus dem Paket imagemagick auf die Datei
ansetze, erhalte ich folgendes Ergebnis:

$ identify -verbose test.jpg | grep Resolution
  Resolution: 72x72
    X Resolution: 72/1
    Y Resolution: 72/1
    Resolution Unit: 2
  Resolution: 72x72
    X Resolution: 72/1
    Y Resolution: 72/1
    Resolution Unit: 2
$

Schöne Grüße
von Simon



php::bar PHP Wiki   -   Listenarchive