Я хочу получить разрешение изображения (DPI) изображения (JPEG, PNG, SVG, GIF) без использования каких-либо расширений PHP (например, imageMagick). Я искал везде, но я не мог найти идеальное решение. Я попробовал ниже код (получил от ссылка на сайт)
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.
DPI изображения обычно является фикцией. Редко это изображение, созданное там, где физические размеры окончательного рендеринга действительно имеют значение (для самого изображения). Тем не менее, информация о DPI хранится в EXIF-данных JPEG, поэтому вы можете читать их с встроенная функция PHP:
<?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"] ?>
Других решений пока нет …