Version 1
[yaffs-website] / web / modules / contrib / imagemagick / src / ImagemagickFormatMapperInterface.php
diff --git a/web/modules/contrib/imagemagick/src/ImagemagickFormatMapperInterface.php b/web/modules/contrib/imagemagick/src/ImagemagickFormatMapperInterface.php
new file mode 100644 (file)
index 0000000..e311aed
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+
+namespace Drupal\imagemagick;
+
+/**
+ * Provides an interface for ImageMagick format mappers.
+ * )
+ */
+interface ImagemagickFormatMapperInterface {
+
+  /**
+   * Validates the format map.
+   *
+   * The map is an associative array with ImageMagick image formats (e.g.
+   * JPEG, GIF87, etc.) as keys and an associative array of format variables
+   * as value. Each array element is structured like the following:
+   * @code
+   *   'TIFF' => [
+   *     'mime_type' => 'image/tiff',
+   *     'enabled' => true,
+   *     'weight' => 10,
+   *     'exclude_extensions' => 'tif, tifx',
+   *   ],
+   * @endcode
+   *
+   * The format variables are as follows:
+   * - 'mime_type': the MIME type of the image format. This is used to resolve
+   *    the supported file extensions, e.g. ImageMagick 'JPEG' format is mapped
+   *    to MIME type 'image/jpeg' which in turn will be mapped to 'jpeg jpg
+   *    jpe' image file extensions.
+   * - 'enabled': (optional) defines if the fomat needs to be enabled within
+   *   the toolkit. Defaults to TRUE.
+   * - 'weight': (optional) is used in cases where an image file extension is
+   *   mapped to more than one ImageMagick format. It is needed in file format
+   *   conversions, e.g. convert from 'png' to 'gif': shall 'GIF' or 'GIF87'
+   *   internal Imagemagick format be used? The format will lower weight will
+   *   be used. Defaults to 0.
+   * - 'exclude_extensions': (optional) is used to limit the file extensions
+   *   to be supported by the toolkit, if the mapping MIME type <-> file
+   *   extension returns more extensions than needed, and we do not want to
+   *   alter the MIME type mapping.
+   *
+   * @param array[] $map
+   *   An associative array with formats as keys and an associative array
+   *   of format variables as value.
+   *
+   * @return array[][]
+   *   An array of arrays of error strings.
+   */
+  public function validateMap(array $map);
+
+  /**
+   * Gets the list of currently enabled image formats.
+   *
+   * @return array
+   *   A simple array of image formats.
+   */
+  public function getEnabledFormats();
+
+  /**
+   * Gets the list of currently enabled image file extensions.
+   *
+   * @return array
+   *   A simple array of image file extensions.
+   */
+  public function getEnabledExtensions();
+
+  /**
+   * Checks if an image format is enabled in the toolkit.
+   *
+   * @param string $format
+   *   An image format in ImageMagick's internal representation (e.g. JPEG,
+   *   GIF87, etc.).
+   *
+   * @return bool
+   *   TRUE if the specified format is enabled within the toolkit, FALSE
+   *   otherwise.
+   */
+  public function isFormatEnabled($format);
+
+  /**
+   * Gets the MIME type of an image format.
+   *
+   * @param string $format
+   *   An image format in ImageMagick's internal representation (e.g. JPEG,
+   *   GIF87, etc.).
+   *
+   * @return string|null
+   *   The MIME type of the specified format if the format is enabled in the
+   *   toolkit, NULL otherwise.
+   */
+  public function getMimeTypeFromFormat($format);
+
+  /**
+   * Gets the image format, given the image file extension.
+   *
+   * @param string $extension
+   *   An image file extension (e.g. jpeg, jpg, png, etc.), without leading
+   *   dot.
+   *
+   * @return string|null
+   *   The ImageMagick internal format (e.g. JPEG, GIF87, etc.) of the
+   *   specified extension, if the format is enabled in the toolkit. NULL
+   *   otherwise.
+   */
+  public function getFormatFromExtension($extension);
+
+}