Imagick::getImageResolution()
(PECL imagick 2.0.0)
获取图像的x,y轴分辨率
说明
Imagick::getImageResolution(void): array
获取图像的x,y轴分辨率
返回值
返回分辨率值的数组
错误/异常
错误时抛出 ImagickException。
For me getImageResolution() always returns X and Y resolution in pixels per centimeter, no matter if I set it with setImageUnits() or not. So an easy way to convert the result from pixels per centimeter to pixels per inch is to do this: <?php $resource = new Imagick($path); $imageResolution = $resource->getImageResolution(); if (!empty($imageResolution['y'])) { $imageResolution['y'] = round($imageResolution['y'] * 2.54, 2); } if (!empty($imageResolution['x'])) { $imageResolution['x'] = round($imageResolution['x'] * 2.54, 2); } ?>
Please note that this method seems to return the image density, or DPI, not it's output resolution. If you want the output resolution, please refer to Imagick::getImageGeometry: http://www.php.net/manual/en/imagick.getimagegeometry.php See http://www.imagemagick.org/Usage/basics/#density for more infomation on the difference.
//location of image: c:/htdocs/rose.jpg $path="c:/htdocs/"; $image=new Imagick($path."rose.jpg"); $array=$image->getImageResolution(); print_r($array); result: Array ( [x]=>75 [y]=>75 )
As of the following versions, the results of this function returns the x and y resolution as floats. desktop:~$ convert --version Version: ImageMagick 6.6.9-1 2011-04-14 Q8 http://www.imagemagick.org Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC Features: OpenMP OpenCL desktop:~$ pecl list Installed packages, channel pecl.php.net: ========================== Package Version State imagick 3.0.1 stable desktop:~$ php --version PHP 5.3.5 (cli) (built: Mar 1 2011 12:57:53) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
Here is simple code snippet to get image DPI: <?php $img = new imagick( 'file.jpg' ); print_r($img->getImageResolution()); // Array ( [x] => 72 [y] => 72 ) ?>