Получить разрешение изображения (DPI) изображения (JPEG, PNG, SVG, GIF) без использования каких-либо расширений PHP

Я хочу получить разрешение изображения (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.

0

Решение

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]