Php/docs/imagick.forwardfouriertransformimage
Imagick::forwardFourierTransformImage
(PECL imagick 3 >= 3.3.0)
Imagick::forwardFourierTransformImage — Description
说明
public Imagick::forwardFourierTransformimage
( bool $magnitude
) : bool
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
。
范例
Example #1 Imagick::forwardFourierTransformImage()
<?php//Utility function for forwardTransformImagefunction 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();}?>