toolkitManager = $toolkit_manager; $this->toolkitId = $this->toolkitManager->getDefaultToolkitId(); } /** * Sets the ID of the image toolkit. * * @param string $toolkit_id * The ID of the image toolkit to use for this image factory. * * @return $this */ public function setToolkitId($toolkit_id) { $this->toolkitId = $toolkit_id; return $this; } /** * Gets the ID of the image toolkit currently in use. * * @return string * The ID of the image toolkit in use by the image factory. */ public function getToolkitId() { return $this->toolkitId; } /** * Constructs a new Image object. * * Normally, the toolkit set as default in the admin UI is used by the * factory to create new Image objects. This can be overridden through * \Drupal\Core\Image\ImageInterface::setToolkitId() so that any new Image * object created will use the new toolkit specified. Finally, a single * Image object can be created using a specific toolkit, regardless of the * current factory settings, by passing its plugin ID in the $toolkit_id * argument. * * @param string|null $source * (optional) The path to an image file, or NULL to construct the object * with no image source. * @param string|null $toolkit_id * (optional) The ID of the image toolkit to use for this image, or NULL * to use the current toolkit. * * @return \Drupal\Core\Image\ImageInterface * An Image object. * * @see ImageFactory::setToolkitId() */ public function get($source = NULL, $toolkit_id = NULL) { $toolkit_id = $toolkit_id ?: $this->toolkitId; return new Image($this->toolkitManager->createInstance($toolkit_id), $source); } /** * Returns the image file extensions supported by the toolkit. * * @param string|null $toolkit_id * (optional) The ID of the image toolkit to use for checking, or NULL * to use the current toolkit. * * @return array * An array of supported image file extensions (e.g. png/jpeg/gif). * * @see \Drupal\Core\ImageToolkit\ImageToolkitInterface::getSupportedExtensions() */ public function getSupportedExtensions($toolkit_id = NULL) { $toolkit_id = $toolkit_id ?: $this->toolkitId; $definition = $this->toolkitManager->getDefinition($toolkit_id); return call_user_func($definition['class'] . '::getSupportedExtensions'); } }