diff --git a/core/modules/image/image.api.php b/core/modules/image/image.api.php
index 7678142..407903d 100644
--- a/core/modules/image/image.api.php
+++ b/core/modules/image/image.api.php
@@ -38,6 +38,36 @@ function hook_image_style_flush($style) {
   cache('mymodule')->deleteAll();
 }
 
+/**
+ * Respond to image style derivative creation.
+ *
+ * This hook enables modules to take action before a derivative image is
+ * created for a style. For example, this can be used to log the creation
+ * of the image, or to set variables that are common to more effects within
+ * the style.
+ *
+ * @param \Drupal\image\ImageStyleInterface $style
+ *   The image style object that is being flushed.
+ * @param string $original_uri
+ *   Original image file URI.
+ * @param string $derivative_uri
+ *   Derivative image file URI.
+ */
+function hook_image_create_derivative($style, $original_uri, $derivative_uri) {
+  // Log creation of the derivative image.
+  watchdog(
+    'image',
+    t(
+      'Creating derivative image: %derivative for style: %style from image: %original',
+      array(
+        '%style' => $style->id(),
+        '%derivative' => $derivative_uri,
+        '%original' => $original_uri,
+      )
+    )
+  );
+}
+
  /**
   * @} End of "addtogroup hooks".
   */
diff --git a/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php b/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php
index 83aea6f..ceb8672 100644
--- a/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php
+++ b/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php
@@ -278,6 +278,11 @@ public function flush($path = NULL) {
    * {@inheritdoc}
    */
   public function createDerivative($original_uri, $derivative_uri) {
+
+    // Let other modules update as necessary.
+    $module_handler = \Drupal::moduleHandler();
+    $module_handler->invokeAll('image_style_create_derivative', array($this, $original_uri, $derivative_uri));
+
     // Get the folder for the final location of this style.
     $directory = drupal_dirname($derivative_uri);
 
