diff --git a/core/modules/image/src/Entity/ImageStyle.php b/core/modules/image/src/Entity/ImageStyle.php
index 32e5d3b..6603fd2 100644
--- a/core/modules/image/src/Entity/ImageStyle.php
+++ b/core/modules/image/src/Entity/ImageStyle.php
@@ -347,7 +347,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, $this->effects);
       $this->effectsCollection->sort();
     }
     return $this->effectsCollection;
diff --git a/core/modules/image/src/ImageEffectBase.php b/core/modules/image/src/ImageEffectBase.php
index 3b3bbb7..8b2d303 100644
--- a/core/modules/image/src/ImageEffectBase.php
+++ b/core/modules/image/src/ImageEffectBase.php
@@ -9,6 +9,7 @@
 
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Plugin\PluginBase;
+use Drupal\image\ImageStyleInterface;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -39,6 +40,18 @@
   protected $weight = '';
 
   /**
+   * The image style this effect belongs to.
+   *
+   * When a collection of image effects belonging to an image style is
+   * instantiated, the effect plugins will receive the instance of their
+   * image style at the time of initialization, so that image effects
+   * can access public methods on their parent image style.
+   *
+   * @var \Drupal\image\ImageStyleInterface|null
+   */
+  protected $imageStyle = NULL;
+
+  /**
    * A logger instance.
    *
    * @var \Psr\Log\LoggerInterface
@@ -70,6 +83,21 @@ public static function create(ContainerInterface $container, array $configuratio
   /**
    * {@inheritdoc}
    */
+  public function setImageStyle(ImageStyleInterface $image_style) {
+    $this->imageStyle = $image_style;
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getImageStyle() {
+    return $this->imageStyle;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function transformDimensions(array &$dimensions) {
     $dimensions['width'] = $dimensions['height'] = NULL;
   }
diff --git a/core/modules/image/src/ImageEffectInterface.php b/core/modules/image/src/ImageEffectInterface.php
index 790d7b2..0860ee7 100644
--- a/core/modules/image/src/ImageEffectInterface.php
+++ b/core/modules/image/src/ImageEffectInterface.php
@@ -10,6 +10,7 @@
 use Drupal\Component\Plugin\ConfigurablePluginInterface;
 use Drupal\Component\Plugin\PluginInspectionInterface;
 use Drupal\Core\Image\ImageInterface;
+use Drupal\image\ImageStyleInterface;
 
 /**
  * Defines the interface for image effects.
@@ -97,4 +98,22 @@ public function getWeight();
    */
   public function setWeight($weight);
 
+  /**
+   * Returns the image style of this image effect.
+   *
+   * @return \Drupal\image\ImageStyleInterface|null
+   *   Either the image style of the image effect, or NULL if not set.
+   */
+  public function getImageStyle();
+
+  /**
+   * Sets the image style of this image effect.
+   *
+   * @param \Drupal\image\ImageStyleInterface $image_style
+   *   The image style this image effect belongs to.
+   *
+   * @return $this
+   */
+  public function setImageStyle(ImageStyleInterface $image_style);
+
 }
diff --git a/core/modules/image/src/ImageEffectPluginCollection.php b/core/modules/image/src/ImageEffectPluginCollection.php
index ef17191..b3a47b3 100644
--- a/core/modules/image/src/ImageEffectPluginCollection.php
+++ b/core/modules/image/src/ImageEffectPluginCollection.php
@@ -8,6 +8,8 @@
 namespace Drupal\image;
 
 use Drupal\Core\Plugin\DefaultLazyPluginCollection;
+use Drupal\image\ImageEffectManager;
+use Drupal\image\ImageStyleInterface;
 
 /**
  * A collection of image effects.
@@ -15,6 +17,29 @@
 class ImageEffectPluginCollection extends DefaultLazyPluginCollection {
 
   /**
+   * The image style of this collection.
+   *
+   * @var \Drupal\image\ImageStyleInterface
+   */
+  protected $imageStyle;
+
+  /**
+   * Constructs a new ImageEffectPluginCollection object.
+   *
+   * @param \Drupal\image\ImageEffectManager $manager
+   *   The image effect manager.
+   * @param \Drupal\image\ImageStyleInterface $image_style
+   *   The image style of this collection.
+   * @param array $configurations
+   *   (optional) An associative array containing the initial configuration for
+   *   each plugin in the collection, keyed by plugin instance ID.
+   */
+  public function __construct(ImageEffectManager $manager, ImageStyleInterface $image_style, array $configurations = array()) {
+    parent::__construct($manager, $configurations);
+    $this->imageStyle = $image_style;
+  }
+
+  /**
    * {@inheritdoc}
    *
    * @return \Drupal\image\ImageEffectInterface
@@ -26,6 +51,14 @@ public function &get($instance_id) {
   /**
    * {@inheritdoc}
    */
+  protected function initializePlugin($instance_id) {
+    parent::initializePlugin($instance_id);
+    $this->pluginInstances[$instance_id]->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/Tests/ImageAdminStylesTest.php b/core/modules/image/src/Tests/ImageAdminStylesTest.php
index 3ecf7c7..9520a9a 100644
--- a/core/modules/image/src/Tests/ImageAdminStylesTest.php
+++ b/core/modules/image/src/Tests/ImageAdminStylesTest.php
@@ -150,6 +150,9 @@ function testStyle() {
       foreach ($effect_edits[$effect->getPluginId()] as $field => $value) {
         $this->assertEqual($value, $effect_configuration['data'][$field], String::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.
+      $this->assertEqual('bar', $effect->getImageStyle()->getThirdPartySetting('image_module_test', 'foo'), 'Image style third party settings are accessible from the effect.');
     }
 
     // Assert that every effect was saved.
