2016-03-31 14 views
0

Ich möchte Bildauflösung (DPI) eines Bildes (JPEG, PNG, SVG, GIF) abrufen, ohne zu verwenden PHP-Erweiterung (wie imageMagick). Ich suchte überall, aber ich konnte keine perfekte Lösung finden. Ich habe versucht, unter Code (bekam von link)Abrufen der Bildauflösung (DPI) eines Bildes (JPEG, PNG, SVG, GIF) ohne Verwendung einer PHP-Erweiterung

function get_dpi($filename){ 
    $a = fopen($filename,'r'); 
    $string = fread($a,20); 
    fclose($a); 

    $data = bin2hex(substr($string,14,4)); 
    $x = substr($data,0,4); 
    $y = substr($data,0,4); 

    return array(hexdec($x),hexdec($y)); 
} 

Aber ich bin nicht den richtigen horizontalen und vertikalen DPI bekommen. Zum Beispiel habe ich ein Bild mit 96dpi und 96dpi verwendet, aber ich habe (100,100). Und diese Funktion ist nur für JPEG-Dateiformate.

+1

Auflösung und DPI sind zwei verschiedene Tiere. – apokryfos

+0

Die DPI eines SVG-Bildes ist unendlich. –

Antwort

1

Die DPI eines Bildes ist in der Regel eine Frage der Fiktion. Selten wird ein Bild erzeugt, bei dem die physikalischen Dimensionen des endgültigen Renderings tatsächlich eine Rolle spielen (soweit es das Bild selbst betrifft). Das heißt, wird die DPI-Informationen in den EXIF-Daten eines JPEG gespeichert, so dass Sie es von dort mit the built-in PHP function lesen:

<?php 
    $filename = "/Users/quentin/Dropbox/Camera Uploads/2016-03-30 21.01.09.jpg"; 
    $exif = exif_read_data($filename); 
?> 

DPI is <?php echo $exif["XResolution"] ?> by <?php echo $exif["YResolution"] ?> 
+0

Hallo Quentin, danke für die Antwort. Ich habe die Funktion überprüft, aber ich habe keine DPI-Informationen erhalten. Das ist, was ich bekam, als ich versuchte, die Exif-Daten zu drucken Array ([Dateiname] => 1.jpg [FileDateTime] => 1350899542 [FileSize] => 150695 [FileType] => 2 [MimeType] => image/jpeg [SektionenFund] => IFD0, APP12 [COMPUTED] => Array ([html] => Breite = "700" Höhe = "420" [Höhe] => 420 [Breite] => 700 [IsColor] => 1 [ ByteOrderMotorola] => 0) [Firma] => Ducky [Info] =>) – Arun

+0

@Arun - Soweit ich das beurteilen kann, gibt die Datei nicht an, in welcher Größe sie gedruckt werden soll. Wie ich schon sagte, ist das DPI normalerweise fiktiv. Die meisten Leute möchten das Bild an das Dokument anpassen oder es an die DPI/PPI des Druckers/Displays anpassen, anstatt sich darum zu kümmern, in welcher Größe das Bild angezeigt werden soll (und normalerweise denkt die Person, die das Bild erstellt, genauso und DPI wird nur als Standard von der Grafiksoftware hinzugefügt). – Quentin

+0

Danke Quentin. Dann denke ich, ich muss die Imagemagels benutzen. – Arun

Verwandte Themen