Как получить 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;
}
Другие вопросы по тегам