/**
  * @param PhpGdEvent $event
  */
 public function createImage(PhpGdEvent $event)
 {
     $layers = $event->getLayers();
     if (1 === count($layers) && $layers[0]->get('image.width') === $layers[0]->get('final.width') && $layers[0]->get('image.height') === $layers[0]->get('final.height') && $layers[0]->get('image.format') === $layers[0]->get('final.format')) {
         $options = $event->getOptions();
         $image = $this->factory->createImage($layers, $options);
         $event->setImage($image);
         $event->stopPropagation();
     }
 }
 /**
  * @param PhpGdEvent $event
  */
 public function createImage(PhpGdEvent $event)
 {
     $layers = $event->getLayers();
     if (!$layers[0]->has('gif.extracted')) {
         return;
     }
     try {
         $options = $event->getOptions();
         $image = $this->factory->createImage($layers, $options);
         $event->setImage($image);
         $event->stopPropagation();
     } catch (\Exception $e) {
         $e = new TranslatedException('gif.animation.may.lost.due.to.corrupted.frame.data');
         $this->extras['gif_error'] = $e->getMessage();
     }
 }
Esempio n. 3
0
 /**
  * @inheritDoc
  */
 public function getImage(array $layers, array $options)
 {
     $dispatcher = new EventDispatcher();
     $extension = new DelegatingExtension();
     $extension->boot($dispatcher);
     $event = new PhpGdEvent($layers, $options);
     $dispatcher->dispatch(PhpGdEvents::PRE_IMAGE, $event);
     if (!$event->getImage()) {
         $event = new PhpGdEvent($layers, $options);
         $dispatcher->dispatch(PhpGdEvents::IMAGE, $event);
     }
     $image = $event->getImage();
     $event = new PhpGdEvent($layers, $options);
     $event->setImage($image);
     $dispatcher->dispatch(PhpGdEvents::FINISH_IMAGE, $event);
     return $event->getImage();
 }
 /**
  * @param PhpGdEvent $event
  */
 public function createImage(PhpGdEvent $event)
 {
     $image = $this->factory->createImage($event->getLayers(), $event->getOptions());
     $event->setImage($image);
     $event->stopPropagation();
 }