Mailinglisten-Archive |
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