我正在寻找可以帮助我在 PHP 中获取图像 DPI 的代码。
有人可以调查一下吗?
提前致谢。
您可以为此使用一些图像库。例如: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;
}