Imbo\Image\Transformation\Contrast::transform PHP Method

transform() public method

Transform the image
public transform ( Imbo\EventManager\EventInterface $event )
$event Imbo\EventManager\EventInterface The event instance
    public function transform(EventInterface $event)
    {
        $params = $event->getArgument('params');
        $alpha = isset($params['sharpen']) ? (double) $params['sharpen'] : 1;
        $alpha = isset($params['alpha']) ? (double) $params['alpha'] : $alpha;
        $beta = isset($params['beta']) ? (double) $params['beta'] : 0.5;
        $sharpen = $alpha > 0;
        if ($alpha == 0) {
            return;
        }
        $beta *= $this->getQuantumRange();
        try {
            $this->imagick->sigmoidalContrastImage($sharpen, abs($alpha), $beta);
            $event->getArgument('image')->hasBeenTransformed(true);
        } catch (ImagickException $e) {
            throw new TransformationException($e->getMessage(), 400, $e);
        }
    }

Usage Example

Example #1
0
 /**
  * @dataProvider getContrastParams
  */
 public function testSetsTheCorrectContrast(array $params, $contrastValue, $times)
 {
     $image = $this->getMock('Imbo\\Model\\Image');
     $image->expects($this->once())->method('hasBeenTransformed')->with(true);
     $event = $this->getMock('Imbo\\EventManager\\Event');
     $event->expects($this->at(0))->method('getArgument')->with('params')->will($this->returnValue($params));
     $event->expects($this->at(1))->method('getArgument')->with('image')->will($this->returnValue($image));
     $imagick = $this->getMock('Imagick');
     $imagick->expects($this->exactly($times))->method('contrastImage')->with($contrastValue);
     $this->transformation->setImagick($imagick);
     $this->transformation->transform($event);
 }
All Usage Examples Of Imbo\Image\Transformation\Contrast::transform