Как получить DPI изображения в PHP
Я ищу код, который может помочь мне получить изображение DPI в PHP.
Может ли кто-нибудь разобраться в этом?
Заранее спасибо.
3 ответа
Решение
Вы можете пойти для некоторых библиотек изображений для этого. Например: Imagick, библиотека GD...
(ИЛИ ЖЕ)
Вы можете использовать следующую функцию,
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));
}
Я полагаю, что пользовательский php не будет использовать все типы изображений.
Лучший способ установить Imagick:
$image = new Imagick($filename);
$resolutions = $image->getImageResolution();
С ImageMagick
function getDPIImageMagick($filename){
$cmd = 'identify -quiet -format "%x" '.$filename;
@exec(escapeshellcmd($cmd), $data);
if($data && is_array($data)){
$data = explode(' ', $data[0]);
if($data[1] == 'PixelsPerInch'){
return $data[0];
}elseif($data[1] == 'PixelsPerCentimeter'){
$x = ceil($data[0] * 2.54);
return $x;
}elseif($data[1] == 'Undefined'){
return $data[0];
}
}
return 72;
}