Exemplo n.º 1
0
 public function perform(Zend_Image_Adapter_Gd $adapter, Zend_Image_Action_Resize $resize)
 {
     $handle = $adapter->getHandle();
     $newY = $resize->getYAmountCalculated();
     $newX = $resize->getXAmountCalculated();
     //if a dimension is 0, resize is proportionate to other dimension
     //if proportions are constrained and both dimensions are specified,
     //ImageMagick uses the smallest to constrain
     //
     //Note the fit parameter only works if the image is being made SMALLER
     //@TODO: implement constraints manually for images being made larger
     $fit = false;
     if ($resize->hasConstrainedProportions() && $newX > 0 && $newY > 0) {
         $fit = true;
     }
     //        $handle->resizeImage($newX, $newY, $resize->getFilter(), 1, $fit);
     $newImg = imagecreatetruecolor($newX, $newY);
     imagecopyresampled($newImg, $handle, 0, 0, 0, 0, $newX, $newY, $adapter->getWidth(), $adapter->getHeight());
     return $newImg;
 }
Exemplo n.º 2
0
 public function perform(Zend_Image_Adapter_Gd $adapter, Zend_Image_Action_Mirror $rotate)
 {
     $handle = $adapter->getHandle();
     $sizeX = $adapter->getWidth();
     $sizeY = $adapter->getHeight();
     $successFlop = true;
     if ($rotate->flop()) {
         $handleNew = imagecreatetruecolor($sizeX, $sizeY);
         $successFlop = imagecopyresampled($handleNew, $handle, 0, 0, $sizeX - 1, 0, $sizeX, $sizeY, 0 - $sizeX, $sizeY);
         $handle = $handleNew;
     }
     $successFlip = true;
     if ($rotate->flip()) {
         $handleNew = imagecreatetruecolor($sizeX, $sizeY);
         $successFlip = imagecopyresampled($handleNew, $handle, 0, 0, 0, $sizeY - 1, $sizeX, $sizeY, $sizeX, 0 - $sizeY);
         $handle = $handleNew;
     }
     if (!$successFlop || !$successFlip) {
         require_once 'Zend/Image/Exception';
         throw new Zend_Image_Exception('Was not able to mirror image as specified');
     }
     return $handle;
 }