• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Imagick::resampleImage()

    (PECL imagick 2.0.0)

    Resample image to desired resolution

    说明

    Imagick::resampleImage(float $x_resolution,float $y_resolution,int $filter,float $blur): bool

    Resample image to desired resolution.

    参数

    $x_resolution
    $y_resolution
    $filter
    $blur

    返回值

    成功时返回TRUE

    范例

    Example #1 Imagick::resampleImage()

    <?php
    function resampleImage($imagePath) {
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
        header("Content-Type: image/jpg");
        echo $imagick->getImageBlob();
    }
    ?>
    
    Please note that blur of 1 should not affect the image if I'm understanding correctly from this page:
    http://www.php.net/manual/en/imagick.resizeimage.php
    Please not that I had extremely high CPU usage using this function on Ubuntu linux 15.10. Switching to the resizeImage function fixed the problem.
    Lets say you want to reduce the resolution of uploaded images for the web.
    The following will load a image at whatever resolution and resample it down to 72 dpi and save as a different file.
    The dpi for setImageResolution() and resampleImage() should be whatever dpi your resampling too.
    <?php
    $image = new Imagick();
    $image->readImage('image.jpg');
    $image->setImageResolution(72,72);
    $image->resampleImage(72,72,imagick::FILTER_UNDEFINED,0);
    $image->writeImage('image72.jpg');
    ?>