Imagick::forwardFourierTransformImage
(PECL imagick 3 >= 3.3.0)
Imagick::forwardFourierTransformImage — Implements the discrete Fourier transform (DFT)
说明
Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.
参数
magnitude- 
     
If true, return as magnitude / phase pair otherwise a real / imaginary image pair.
 
返回值
   成功时返回 true。
  
示例
示例 #1 Imagick::forwardFourierTransformImage()
<?php
//Utility function for forwardTransformImage
function createMask() {
$draw = new \ImagickDraw();
$draw->setStrokeOpacity(0);
$draw->setStrokeColor('rgb(255, 255, 255)');
$draw->setFillColor('rgb(255, 255, 255)');
//Draw a circle on the y-axis, with it's centre
    //at x, y that touches the origin
$draw->circle(250, 250, 220, 250);
$imagick = new \Imagick();
$imagick->newImage(512, 512, "black");
$imagick->drawImage($draw);
$imagick->gaussianBlurImage(20, 20);
$imagick->autoLevelImage();
    return $imagick;
}
function forwardFourierTransformImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);
$mask = createMask();
$imagick->forwardFourierTransformImage(true);
    @$imagick->setimageindex(0);
$magnitude = $imagick->getimage();
    @$imagick->setimageindex(1);
$imagickPhase = $imagick->getimage();
    if (true) {
$imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
    }
    if (false) {
$output = clone $imagickPhase;
$output->setimageformat('png');
header("Content-Type: image/png");
        echo $output->getImageBlob();
    }
$magnitude->inverseFourierTransformImage($imagickPhase, true);
$magnitude->setimageformat('png');
header("Content-Type: image/png");
    echo $magnitude->getImageBlob();
}
?>
  +添加备注
  
 用户贡献的备注
此页面尚无用户贡献的备注。
备份地址:http://www.lvesu.com/blog/php/imagick.forwardfouriertransformimage.php