diff --git a/core/modules/image/src/Entity/ImageStyle.php b/core/modules/image/src/Entity/ImageStyle.php
index f3d0207..4f0c4f5 100644
--- a/core/modules/image/src/Entity/ImageStyle.php
+++ b/core/modules/image/src/Entity/ImageStyle.php
@@ -354,7 +354,7 @@ public function getEffect($effect) {
    */
   public function getEffects() {
     if (!$this->effectsCollection) {
-      $this->effectsCollection = new ImageEffectPluginCollection($this->getImageEffectPluginManager(), $this->effects);
+      $this->effectsCollection = new ImageEffectPluginCollection($this->getImageEffectPluginManager(), $this->effects, $this);
       $this->effectsCollection->sort();
     }
     return $this->effectsCollection;
diff --git a/core/modules/image/src/ImageEffectPluginCollection.php b/core/modules/image/src/ImageEffectPluginCollection.php
index ef17191..56688ec 100644
--- a/core/modules/image/src/ImageEffectPluginCollection.php
+++ b/core/modules/image/src/ImageEffectPluginCollection.php
@@ -15,6 +15,29 @@
 class ImageEffectPluginCollection extends DefaultLazyPluginCollection {
 
   /**
+   * The image style using these effects.
+   *
+   * @var \Drupal\image\ImageStyleInterface
+   */
+  protected $imageStyle;
+
+  /**
+   * Constructs a new ImageEffectPluginCollection object.
+   *
+   * @param \Drupal\image\ImageEffectManager $manager
+   *   The image effect manager.
+   * @param array $configurations
+   *   An associative array containing the initial configuration for each plugin
+   *   in the collection, keyed by plugin instance ID.
+   * @param \Drupal\image\ImageStyleInterface $image_style
+   *   The image style using these effects.
+   */
+  public function __construct(ImageEffectManager $manager, array $configurations, ImageStyleInterface $image_style) {
+    parent::__construct($manager, $configurations);
+    $this->imageStyle = $image_style;
+  }
+
+  /**
    * {@inheritdoc}
    *
    * @return \Drupal\image\ImageEffectInterface
@@ -26,6 +49,18 @@ public function &get($instance_id) {
   /**
    * {@inheritdoc}
    */
+  protected function initializePlugin($instance_id) {
+    parent::initializePlugin($instance_id);
+
+    $plugin_instance = $this->pluginInstances[$instance_id];
+    if ($plugin_instance instanceof ImageStyleAwareInterface) {
+      $plugin_instance->setImageStyle($this->imageStyle);
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function sortHelper($aID, $bID) {
     $a_weight = $this->get($aID)->getWeight();
     $b_weight = $this->get($bID)->getWeight();
diff --git a/core/modules/image/src/ImageStyleAwareInterface.php b/core/modules/image/src/ImageStyleAwareInterface.php
new file mode 100644
index 0000000..e39ff46
--- /dev/null
+++ b/core/modules/image/src/ImageStyleAwareInterface.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\image\ImageStyleAwareInterface.
+ */
+
+namespace Drupal\image;
+
+/**
+ * Allows an image effect to be aware of the image style that contains it.
+ */
+interface ImageStyleAwareInterface {
+
+  /**
+   * Sets the image style object this effect belongs to.
+   *
+   * @param \Drupal\image\ImageStyleInterface $image_style
+   *   The image style.
+   *
+   * @return $this
+   */
+  public function setImageStyle(ImageStyleInterface $image_style);
+
+}
diff --git a/core/modules/image/src/ImageStyleAwareTrait.php b/core/modules/image/src/ImageStyleAwareTrait.php
new file mode 100644
index 0000000..f798673
--- /dev/null
+++ b/core/modules/image/src/ImageStyleAwareTrait.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\image\ImageStyleAwareTrait.
+ */
+
+namespace Drupal\image;
+
+use Drupal\image\Entity\ImageStyle;
+
+/**
+ * Provides an implementation for an image-style-aware object.
+ *
+ * @see \Drupal\image\ImageStyleAwareInterface
+ */
+trait ImageStyleAwareTrait {
+
+  /**
+   * The image style this effect belongs to.
+   *
+   * @var \Drupal\image\ImageStyleInterface
+   */
+  protected $imageStyle;
+
+  /**
+   * Sets the image style object this effect belongs to.
+   *
+   * @param \Drupal\image\ImageStyleInterface $image_style
+   *   The image style.
+   *
+   * @return $this
+   */
+  public function setImageStyle(ImageStyleInterface $image_style) {
+    $this->imageStyle = $image_style;
+    return $this;
+  }
+
+  /**
+   * Gets the image style object this effect belongs to.
+   *
+   * @return \Drupal\image\ImageStyleInterface
+   *   The image style this effect belongs to.
+   */
+  protected function getImageStyle() {
+    return $this->imageStyle;
+  }
+
+}
diff --git a/core/modules/image/src/Tests/ImageAdminStylesTest.php b/core/modules/image/src/Tests/ImageAdminStylesTest.php
index ed3854f..6c4f2cf 100644
--- a/core/modules/image/src/Tests/ImageAdminStylesTest.php
+++ b/core/modules/image/src/Tests/ImageAdminStylesTest.php
@@ -98,6 +98,9 @@ function testStyle() {
         'random' => 1,
         'bgcolor' => '#FFFF00',
       ),
+      'image_module_test_image_style_aware' => [
+        // No options for the test effect.
+      ],
     );
 
     // Add style form.
@@ -152,6 +155,11 @@ function testStyle() {
       foreach ($effect_edits[$effect->getPluginId()] as $field => $value) {
         $this->assertEqual($value, $effect_configuration['data'][$field], SafeMarkup::format('The %field field in the %effect effect has the correct value of %value.', array('%field' => $field, '%effect' => $effect->getPluginId(), '%value' => $value)));
       }
+      // Check that ImageStyle third party settings are accessible from within
+      // the effect.
+      if ($effect->getPluginId() === 'image_module_test_image_style_aware') {
+        $this->assertEqual('bar', $effect->label(), 'Image style third party settings are accessible from the effect.');
+      }
     }
 
     // Assert that every effect was saved.
@@ -260,7 +268,7 @@ function testStyle() {
     $this->drupalPostForm($style_path, array('new' => 'image_rotate'), t('Add'));
     $this->drupalPostForm(NULL, $edit, t('Add effect'));
     $style = entity_load_unchanged('image_style', $style_name);
-    $this->assertEqual(count($style->getEffects()), 6, 'Rotate effect with transparent background was added.');
+    $this->assertEqual(count($style->getEffects()), 7, 'Rotate effect with transparent background was added.');
 
     // Style deletion form.
 
diff --git a/core/modules/image/tests/modules/image_module_test/config/schema/image_module_test.schema.yml b/core/modules/image/tests/modules/image_module_test/config/schema/image_module_test.schema.yml
index b0e8ebf..9a8240d 100644
--- a/core/modules/image/tests/modules/image_module_test/config/schema/image_module_test.schema.yml
+++ b/core/modules/image/tests/modules/image_module_test/config/schema/image_module_test.schema.yml
@@ -5,3 +5,7 @@ image.style.*.third_party.image_module_test:
     foo:
       type: string
       label: 'Label for foo'
+
+image.effect.image_module_test_image_style_aware:
+  type: image_size
+  label: 'Image module test image-style-aware'
diff --git a/core/modules/image/tests/modules/image_module_test/src/Plugin/ImageEffect/ImageStyleAwareTestImageEffect.php b/core/modules/image/tests/modules/image_module_test/src/Plugin/ImageEffect/ImageStyleAwareTestImageEffect.php
new file mode 100644
index 0000000..1f38963
--- /dev/null
+++ b/core/modules/image/tests/modules/image_module_test/src/Plugin/ImageEffect/ImageStyleAwareTestImageEffect.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @file
+ * Contains
+ *   \Drupal\image_module_test\Plugin\ImageEffect\ImageStyleAwareTestImageEffect.
+ */
+
+namespace Drupal\image_module_test\Plugin\ImageEffect;
+
+use Drupal\Core\Image\ImageInterface;
+use Drupal\image\ImageStyleAwareTrait;
+use Drupal\image\ImageEffectBase;
+use Drupal\image\ImageStyleAwareInterface;
+
+/**
+ * Provides an image-style-aware image effect.
+ *
+ * @ImageEffect(
+ *   id = "image_module_test_image_style_aware",
+ *   label = @Translation("Image module test image-style-aware")
+ * )
+ */
+class ImageStyleAwareTestImageEffect extends ImageEffectBase implements ImageStyleAwareInterface {
+
+  use ImageStyleAwareTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function applyEffect(ImageInterface $image) {
+    return TRUE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function label() {
+    return $this->getImageStyle()->getThirdPartySetting('image_module_test', 'foo');
+  }
+
+}
