• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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 )
    ?>