function jpeg_dpi($filename)
{
$f=fopen($filename,"rb");
$s=fread($f,18);
fclose($f);
if (strlen($s)<18) return false; // неверный формат
$a=unpack("n9",$s);
if (!(
$a[1]==0xFFD8
&& $a[2]==0xFFE0
&& $a[3]>=16
&& $a[4]==0x4A46
&& $a[5]==0x4946
&& $a[6]==1
&& $a[7]<=767
)) return false; // неверный формат либо отсутствует сегмент APP0
$units=$a[7] & 3;
if ($units!=2 && $units!=1) return false; // dpi/dpcm не указан
if ($units==2) return array( // dpcm - коонвертируем в dpi
intval($a[8]*2.54),
intval($a[9]*2.54)
);
else return array($a[8],$a[9]); // dpi - возвращаем
}