diff --git a/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php
index af3dad1..2e1b8da 100644
--- a/core/modules/views/src/Plugin/views/field/Field.php
+++ b/core/modules/views/src/Plugin/views/field/Field.php
@@ -23,6 +23,7 @@
 use Drupal\Core\Render\RendererInterface;
 use Drupal\Core\Session\AccountInterface;
 use Drupal\Core\TypedData\TypedDataInterface;
+use Drupal\image\Entity\ImageStyle;
 use Drupal\views\FieldAPIHandlerTrait;
 use Drupal\views\Entity\Render\EntityFieldRenderer;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
@@ -962,6 +963,19 @@ public function calculateDependencies() {
     if (!empty($this->options['type'])) {
       $dependencies['module'][] = $this->formatterPluginManager->getDefinition($this->options['type'])['provider'];
     }
+    // Add the image style.
+    $field = $this->getFieldDefinition();
+    $style_id = '';
+    if ($field->getType() == 'image') {
+      $style_id = $this->displayHandler->getOption('fields')[$field->getName()]['settings']['image_style'];
+    }
+
+    /** @var \Drupal\image\ImageStyleInterface $style */
+    if ($style_id && $style = ImageStyle::load($style_id)) {
+      // If this formatter uses a valid image style to display the image, add
+      // the image style configuration entity as dependency of this formatter.
+      $dependencies[$style->getConfigDependencyKey()][] = $style->getConfigDependencyName();
+    }
 
     return $dependencies;
   }
diff --git a/core/modules/views/src/Tests/DependenciesTest.php b/core/modules/views/src/Tests/DependenciesTest.php
new file mode 100644
index 0000000..d94cde4
--- /dev/null
+++ b/core/modules/views/src/Tests/DependenciesTest.php
@@ -0,0 +1,179 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Tests\DependenciesTest.
+ */
+
+namespace Drupal\views\Tests;
+
+use Drupal\node\Entity\Node;
+
+/**
+ * Tests general rendering of a view.
+ *
+ * @group views
+ */
+class DependenciesTest extends ViewTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $testViews = ['entity_test_fields_dependencies'];
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['views_test_config', 'entity_test', 'user', 'node', 'image', 'field_ui', 'image_module_test'];
+
+  /**
+   * An user with permissions to administer content types and image styles.
+   *
+   * @var \Drupal\user\UserInterface
+   */
+  protected $adminUser;
+
+  /**
+   * The style name to delete.
+   *
+   * @var string
+   */
+  protected $style_name = 'thumbnail';
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp(FALSE);
+
+    $this->enableViewsTestModule();
+
+    // Create Basic page and Article node types.
+    if ($this->profile != 'standard') {
+      $this->drupalCreateContentType(['type' => 'page', 'name' => 'Basic page']);
+      $this->drupalCreateContentType(['type' => 'article', 'name' => 'Article']);
+    }
+
+    $this->adminUser = $this->drupalCreateUser(['access content', 'access administration pages', 'administer site configuration', 'administer content types', 'administer node fields', 'administer nodes', 'create article content', 'edit any article content', 'delete any article content', 'administer image styles', 'administer node display']);
+    $this->drupalLogin($this->adminUser);
+
+    // Create an image field that uses the new style.
+    $field_name = 'field_image';
+    $this->createImageField($field_name, 'article');
+
+    // Create a new node with an image attached.
+    $test_image = current($this->drupalGetTestFiles('image'));
+    $nid = $this->uploadNodeImage($test_image, $field_name, 'article', $this->randomMachineName());
+    Node::load($nid);
+
+    ViewTestData::createTestViews(get_class($this), array('views_test_config'));
+  }
+
+  /**
+   * Tests Image Style Dependency.
+   */
+  public function testImageStyleDependency() {
+
+    $this->drupalGet('admin/config/media/image-styles/manage/' . $this->style_name . '/delete');
+
+    // A warning shows that the view will be deleted.
+    $this->assertRaw('Show Image Fields');
+  }
+
+  /**
+   * Create a new image field.
+   *
+   * @param string $name
+   *   The name of the new field (all lowercase), exclude the "field_" prefix.
+   * @param string $type_name
+   *   The node type that this field will be added to.
+   * @param array $storage_settings
+   *   A list of field storage settings that will be added to the defaults.
+   * @param array $field_settings
+   *   A list of instance settings that will be added to the instance defaults.
+   * @param array $widget_settings
+   *   A list of widget settings that will be added to the widget defaults.
+   */
+  function createImageField($name, $type_name, $storage_settings = array(), $field_settings = array(), $widget_settings = array()) {
+    entity_create('field_storage_config', array(
+      'field_name' => $name,
+      'entity_type' => 'node',
+      'type' => 'image',
+      'settings' => $storage_settings,
+      'cardinality' => !empty($storage_settings['cardinality']) ? $storage_settings['cardinality'] : 1,
+    ))->save();
+
+    $field_config = entity_create('field_config', array(
+      'field_name' => $name,
+      'label' => $name,
+      'entity_type' => 'node',
+      'bundle' => $type_name,
+      'required' => !empty($field_settings['required']),
+      'settings' => $field_settings,
+    ));
+    $field_config->save();
+
+    entity_get_form_display('node', $type_name, 'default')
+      ->setComponent($name, array(
+        'type' => 'image_image',
+        'settings' => $widget_settings,
+      ))
+      ->save();
+
+    entity_get_display('node', $type_name, 'default')
+      ->setComponent($name)
+      ->save();
+
+    return $field_config;
+
+  }
+
+  /**
+   * Preview an image in a node.
+   *
+   * @param \Drupal\Core\Image\ImageInterface $image
+   *   A file object representing the image to upload.
+   * @param string $field_name
+   *   Name of the image field the image should be attached to.
+   * @param string $type
+   *   The type of node to create.
+   */
+  function previewNodeImage($image, $field_name, $type) {
+    $edit = array(
+      'title[0][value]' => $this->randomMachineName(),
+    );
+    $edit['files[' . $field_name . '_0]'] = drupal_realpath($image->uri);
+    $this->drupalPostForm('node/add/' . $type, $edit, t('Preview'));
+  }
+
+  /**
+   * Upload an image to a node.
+   *
+   * @param $image
+   *   A file object representing the image to upload.
+   * @param $field_name
+   *   Name of the image field the image should be attached to.
+   * @param $type
+   *   The type of node to create.
+   * @param $alt
+   *  The alt text for the image. Use if the field settings require alt text.
+   */
+  function uploadNodeImage($image, $field_name, $type, $alt = '') {
+    $edit = array(
+      'title[0][value]' => $this->randomMachineName(),
+    );
+    $edit['files[' . $field_name . '_0]'] = drupal_realpath($image->uri);
+    $this->drupalPostForm('node/add/' . $type, $edit, t('Save and publish'));
+    if ($alt) {
+      // Add alt text.
+      $this->drupalPostForm(NULL, [$field_name . '[0][alt]' => $alt], t('Save and publish'));
+    }
+
+    // Retrieve ID of the newly created node from the current URL.
+    $matches = array();
+    preg_match('/node\/([0-9]+)/', $this->getUrl(), $matches);
+    return isset($matches[1]) ? $matches[1] : FALSE;
+  }
+
+
+}
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.entity_test_fields_dependencies.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.entity_test_fields_dependencies.yml
new file mode 100644
index 0000000..3598a5a
--- /dev/null
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.entity_test_fields_dependencies.yml
@@ -0,0 +1,179 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_image
+  module:
+    - image
+    - node
+    - user
+id: entity_test_fields_dependencies
+label: 'Show Image Fields'
+module: views
+description: ''
+tag: ''
+base_table: node_field_data
+base_field: nid
+core: 8.x
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: 0
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access content'
+      cache:
+        type: tag
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: false
+          distinct: false
+          replica: false
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: false
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: true
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: 10
+          offset: 0
+          id: 0
+          total_pages: null
+          expose:
+            items_per_page: false
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 25, 50'
+            items_per_page_options_all: false
+            items_per_page_options_all_label: '- All -'
+            offset: false
+            offset_label: Offset
+          tags:
+            previous: '‹ Previous'
+            next: 'Next ›'
+            first: '« First'
+            last: 'Last »'
+          quantity: 9
+      style:
+        type: default
+      row:
+        type: fields
+      fields:
+        field_image:
+          id: field_image
+          table: node__field_image
+          field: field_image
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: false
+          alter:
+            alter_text: false
+            text: ''
+            make_link: false
+            path: ''
+            absolute: false
+            external: false
+            replace_spaces: false
+            path_case: none
+            trim_whitespace: false
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: false
+            max_length: 0
+            word_boundary: true
+            ellipsis: true
+            more_link: false
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: false
+            trim: false
+            preserve_tags: ''
+            html: false
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: false
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: true
+          empty: ''
+          hide_empty: false
+          empty_zero: false
+          hide_alter_empty: true
+          click_sort_column: target_id
+          type: image
+          settings:
+            image_style: thumbnail
+            image_link: ''
+          group_column: ''
+          group_columns: {  }
+          group_rows: true
+          delta_limit: 0
+          delta_offset: 0
+          delta_reversed: false
+          delta_first_last: false
+          multi_type: separator
+          separator: ', '
+          field_api_classes: false
+          plugin_id: field
+      filters: {  }
+      sorts: {  }
+      title: 'Show Image Fields'
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships: {  }
+      arguments: {  }
+      display_extenders: {  }
+      filter_groups:
+        operator: AND
+        groups: {  }
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - 'user.node_grants:view'
+        - user.permissions
+      tags:
+        - 'config:field.storage.node.field_image'
+  page_1:
+    display_plugin: page
+    id: page_1
+    display_title: Page
+    position: 1
+    display_options:
+      display_extenders: {  }
+      path: show-image-fields
+    cache_metadata:
+      max-age: -1
+      contexts:
+        - 'languages:language_content'
+        - 'languages:language_interface'
+        - url.query_args
+        - 'user.node_grants:view'
+        - user.permissions
+      tags:
+        - 'config:field.storage.node.field_image'
