/** * @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(); } }
/** * @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(); }