diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
index 68aaa6435bf58ca3b97074878a971b4562a60cce..de73760de9d0137773e1bdba3005f2452c2e5e9f 100644
--- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
+++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
@@ -344,6 +344,17 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin
     $max_resolution = empty($settings['max_resolution']) ? '600x600' : $settings['max_resolution'];
     $extensions = array_intersect(explode(' ', $settings['file_extensions']), ['png', 'gif', 'jpg', 'jpeg']);
     $extension = array_rand(array_combine($extensions, $extensions));
+
+    $min = explode('x', $min_resolution);
+    $max = explode('x', $max_resolution);
+    if (intval($min[0]) > intval($max[0])) {
+      $max[0] = $min[0];
+    }
+    if (intval($min[1]) > intval($max[1])) {
+      $max[1] = $min[1];
+    }
+    $max_resolution = "$max[0]x$max[1]";
+
     // Generate a max of 5 different images.
     if (!isset($images[$extension][$min_resolution][$max_resolution]) || count($images[$extension][$min_resolution][$max_resolution]) <= 5) {
       /** @var \Drupal\Core\File\FileSystemInterface $file_system */
diff --git a/core/modules/image/tests/src/Kernel/ImageItemTest.php b/core/modules/image/tests/src/Kernel/ImageItemTest.php
index 8c2de5d0cb3cf19ec4571e9fca7822a142dd3c5e..a1879bb4428c28bebad220a4daff9548ce26ad02 100644
--- a/core/modules/image/tests/src/Kernel/ImageItemTest.php
+++ b/core/modules/image/tests/src/Kernel/ImageItemTest.php
@@ -63,6 +63,13 @@ protected function setUp(): void {
       'type' => 'image',
       'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
     ])->save();
+    FieldStorageConfig::create([
+      'entity_type' => 'entity_test',
+      'field_name' => 'image_test_generation',
+      'type' => 'image',
+      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
+    ])->save();
+
     FieldConfig::create([
       'entity_type' => 'entity_test',
       'field_name' => 'image_test',
@@ -71,6 +78,15 @@ protected function setUp(): void {
         'file_extensions' => 'jpg',
       ],
     ])->save();
+    FieldConfig::create([
+      'entity_type' => 'entity_test',
+      'field_name' => 'image_test_generation',
+      'bundle' => 'entity_test',
+      'settings' => [
+        'min_resolution' => '800x800',
+      ],
+    ])->save();
+
     \Drupal::service('file_system')->copy($this->root . '/core/misc/druplicon.png', 'public://example.jpg');
     $this->image = File::create([
       'uri' => 'public://example.jpg',
@@ -136,11 +152,25 @@ public function testImageItem() {
     $properties = $entity->getFieldDefinition('image_test')->getFieldStorageDefinition()->getPropertyDefinitions();
     $this->assertEquals($expected, array_keys($properties));
 
-    // Test the generateSampleValue() method.
+  }
+
+  /**
+   * Tests generateSampleItems() method under different resolutions.
+   */
+  public function testImageItemSampleValueGeneration() {
+
+    // Default behaviour. No resolution configuration.
     $entity = EntityTest::create();
     $entity->image_test->generateSampleItems();
     $this->entityValidateAndSave($entity);
     $this->assertEquals('image/jpeg', $entity->image_test->entity->get('filemime')->value);
+
+    // Max resolution bigger than 600x600.
+    $entity->image_test_generation->generateSampleItems();
+    $this->entityValidateAndSave($entity);
+    $imageItem = $entity->image_test_generation->first()->getValue();
+    $this->assertEquals('800', $imageItem['width']);
+    $this->assertEquals('800', $imageItem['height']);
   }
 
   /**