在不使用任何PHP扩展的情况下检索图像(JPEG,PNG,SVG,GIF)的图像分辨率(DPI)

时间:2016-03-31 11:58:03

标签: php svg resolution dpi image-resolution

我想要在不使用任何PHP扩展(如imageMagick)的情况下检索图像的图像分辨率(DPI)(JPEG,PNG,SVG,GIF)。我到处搜索,但我找不到完美的解决方案。我试过下面的代码(来自link

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));
} 

但我没有得到正确的水平和垂直DPI。例如,我使用了96dpi和96dpi的图像,但我得到了(100,100)。此功能仅适用于JPEG文件格式。

1 个答案:

答案 0 :(得分:1)

图像的DPI通常是虚构的问题。很少是在最终渲染的物理尺寸实际上很重要的地方创建的图像(就图像本身而言)。也就是说,DPI信息存储在JPEG的EXIF数据中,因此您可以使用the built-in PHP function从那里读取它:

<?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"] ?>