我想要在不使用任何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文件格式。
答案 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"] ?>