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