diff --git a/core/modules/media/config/schema/media.schema.yml b/core/modules/media/config/schema/media.schema.yml
index 50a285b..59a0e68 100644
--- a/core/modules/media/config/schema/media.schema.yml
+++ b/core/modules/media/config/schema/media.schema.yml
@@ -40,6 +40,10 @@ media.source.file:
   type: media.source.field_aware
   label: 'File handler configuration'
 
+media.handler.image:
+  type: media.handler.field_aware
+  label: 'Image handler configuration'
+
 action.configuration.media_delete_action:
   type: action_configuration_default
   label: 'Delete media configuration'
diff --git a/core/modules/media/images/icons/no-thumbnail.png b/core/modules/media/images/icons/no-thumbnail.png
new file mode 100644
index 0000000..66fb4d9
--- /dev/null
+++ b/core/modules/media/images/icons/no-thumbnail.png
@@ -0,0 +1,6 @@
+PNG
+
+   IHDR         e   tEXtSoftware Adobe ImageReadyqe<  0IDATx1O"[ݛb6TRQYA4Ra쬬
+o
+=+2,sȲ{z4wf<3~zߤe#Cp!8CCp!8CpHp!8Cp	!8Cp!8$8Cp!8C[sjvoWRQ.7x}}}~~ެM}ʟZ>f8Vl.tJҊqK+t)d %.tp.~8rh4pDa[%H>XpG8888888v˫fpcy'''Jpcy".pt:y9pg`Sן
+Gp	DFk]7_Q*:NőFC?JjZQx/߿ñt-F $cEFbqttG:[uRZdőWaEEF8Tq{{;L$͑@p"#ɘ_X]d±4D(Ԏm%(d±sdc,ZV:S.|qZz-GDGh4#'U׶Ñ8]/pNFp⎪鷀{H­\<#]k"HҜ[^WZM>,NX^^/|x:uss3W*|l	{g=o9S8"p<(s#v2Y#q8j9>Ҳ4]xyKr},|\yqtmAp,Yl-h[[y{{[롴?Z\NL988G%^l!cEp!8CpHp!8Cp	!8Cp!8$8Cp!8Cp!8CpmA	0 {b~a    IENDB`
\ No newline at end of file
diff --git a/core/modules/media/src/Plugin/media/Source/Image.php b/core/modules/media/src/Plugin/media/Source/Image.php
new file mode 100644
index 0000000..c8d64f8
--- /dev/null
+++ b/core/modules/media/src/Plugin/media/Source/Image.php
@@ -0,0 +1,246 @@
+<?php
+
+namespace Drupal\media\Plugin\media\Source;
+
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Datetime\DrupalDateTime;
+use Drupal\Core\Entity\EntityFieldManagerInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Field\FieldTypePluginManagerInterface;
+use Drupal\Core\File\FileSystem;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Image\ImageFactory;
+use Drupal\file\FileInterface;
+use Drupal\media\MediaInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Image entity media source.
+ *
+ * @see \Drupal\Core\Image\ImageInterface
+ *
+ * @MediaSource(
+ *   id = "image",
+ *   label = @Translation("Image"),
+ *   description = @Translation("Provides business logic and metadata for local images."),
+ *   allowed_field_types = {"image", "file"}
+ * )
+ */
+class Image extends File {
+
+  /**
+   * The image factory service.
+   *
+   * @var \Drupal\Core\Image\ImageFactory
+   */
+  protected $imageFactory;
+
+  /**
+   * File system service.
+   *
+   * @var \Drupal\Core\File\FileSystem
+   */
+  protected $fileSystem;
+
+  /**
+   * The EXIF data.
+   *
+   * @var array
+   */
+  protected $exif;
+
+  /**
+   * Constructs a new class instance.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin_id for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   Entity type manager service.
+   * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager
+   *   Entity field manager service.
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $config
+   *   Media entity config object.
+   * @param \Drupal\Core\Field\FieldTypePluginManagerInterface $field_type_manager
+   *   The field type plugin manager service.
+   * @param \Drupal\Core\Image\ImageFactory $image_factory
+   *   The image factory.
+   * @param \Drupal\Core\File\FileSystem $file_system
+   *   File system service.
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, ConfigFactoryInterface $config, FieldTypePluginManagerInterface $field_type_manager, ImageFactory $image_factory, FileSystem $file_system) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $entity_field_manager, $config, $field_type_manager);
+
+    $this->imageFactory = $image_factory;
+    $this->fileSystem = $file_system;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('entity_type.manager'),
+      $container->get('entity_field.manager'),
+      $container->get('config.factory'),
+      $container->get('plugin.manager.field.field_type'),
+      $container->get('image.factory'),
+      $container->get('file_system')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getMetadataAttributes() {
+    $attributes = parent::getMetadataAttributes();
+
+    $attributes += [
+      'width' => $this->t('Width'),
+      'height' => $this->t('Height'),
+    ];
+
+    if ($this->canReadExifData()) {
+      $attributes += [
+        'model' => $this->t('Camera model'),
+        'created' => $this->t('Image creation datetime'),
+        'iso' => $this->t('Iso'),
+        'exposure' => $this->t('Exposure time'),
+        'aperture' => $this->t('Aperture value'),
+        'focal_length' => $this->t('Focal length'),
+      ];
+    }
+
+    return $attributes;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getMetadata(MediaInterface $media, $name) {
+    $value = parent::getMetadata($media, $name);
+
+    if ($value !== NULL) {
+      return $value;
+    }
+
+    // Get the file, image and EXIF data.
+    /** @var \Drupal\file\FileInterface $file */
+    $file = $media->get($this->configuration['source_field'])->entity;
+    $uri = $file->getFileUri();
+    $image = $this->imageFactory->get($uri);
+
+    // Return the field.
+    switch ($name) {
+      case 'width':
+        return $image->getWidth() ?: FALSE;
+
+      case 'height':
+        return $image->getHeight() ?: FALSE;
+
+      case 'thumbnail_uri':
+        return $file->getFileUri();
+    }
+
+    if ($this->canReadExifData()) {
+      switch ($name) {
+        case 'created':
+          /** @var \DateTime $date */
+          $date = new DrupalDateTime($this->getExifField($uri, 'DateTimeOriginal'));
+          return $date->getTimestamp();
+
+        case 'model':
+          return $this->getExifField($uri, 'Model');
+
+        case 'iso':
+          return $this->getExifField($uri, 'ISOSpeedRatings');
+
+        case 'exposure':
+          return $this->getExifField($uri, 'ExposureTime');
+
+        case 'aperture':
+          return $this->getExifField($uri, 'FNumber');
+
+        case 'focal_length':
+          return $this->getExifField($uri, 'FocalLength');
+      }
+    }
+
+    return NULL;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
+    $form = parent::buildConfigurationForm($form, $form_state);
+
+    // Show message if it's not possible to read EXIF data.
+    if (!$this->canReadExifData()) {
+      $form['no_exif_data_reader'] = [
+        '#markup' => $this->t('Unable to read EXIF data for Image. In order to provide EXIF data reading functionality please take a look at PHP documentation of <a href="https://secure.php.net/exif_read_data" target="_blank">exif_read_data</a> function.'),
+      ];
+    }
+
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDefaultThumbnail() {
+    return $this->configFactory->get('media.settings')
+      ->get('icon_base') . '/no-thumbnail.png';
+  }
+
+  /**
+   * Check does functionality for reading EXIF data exist.
+   *
+   * @return bool
+   *   Returns TRUE if functionality for reading of EXIF data is provided.
+   */
+  protected function canReadExifData() {
+    return function_exists('exif_read_data');
+  }
+
+  /**
+   * Get EXIF field value.
+   *
+   * @param string $uri
+   *   The uri for the file that we are getting the EXIF.
+   * @param string $field
+   *   The name of the EXIF field.
+   *
+   * @return string|bool
+   *   The value for the requested field or FALSE if is not set.
+   */
+  protected function getExifField($uri, $field) {
+    if (empty($this->exif)) {
+      $this->exif = $this->getExifData($uri);
+    }
+
+    return $this->exif[$field] ?: FALSE;
+  }
+
+  /**
+   * Read EXIF.
+   *
+   * @param string $uri
+   *   The uri for the file that we are getting the Exif.
+   *
+   * @return array|bool
+   *   An associative array where the array indexes are the header names and
+   *   the array values are the values associated with those headers or FALSE
+   *   if the data can't be read.
+   */
+  protected function getExifData($uri) {
+    return exif_read_data($this->fileSystem->realpath($uri), 'EXIF');
+  }
+
+}
diff --git a/core/modules/media/tests/fixtures/exif_example.jpeg b/core/modules/media/tests/fixtures/exif_example.jpeg
new file mode 100644
index 0000000..2cba9b9
--- /dev/null
+++ b/core/modules/media/tests/fixtures/exif_example.jpeg
@@ -0,0 +1,50 @@
+ JFIF  H H  Exif  MM *           b       v       ~(              i       %           Drupal EXIF Camera     H      H         0210     0100                N                E                  4           `                Ə  http://ns.adobe.com/xap/1.0/ <?xpacket begin='﻿' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+
+ <rdf:Description xmlns:exif='http://ns.adobe.com/exif/1.0/'>
+  <exif:Model>Drupal EXIF Camera</exif:Model>
+  <exif:XResolution>72</exif:XResolution>
+  <exif:YResolution>72</exif:YResolution>
+  <exif:ResolutionUnit>Inch</exif:ResolutionUnit>
+  <exif:YCbCrPositioning>Centered</exif:YCbCrPositioning>
+  <exif:ExifVersion>Exif Version 2.1</exif:ExifVersion>
+  <exif:FlashPixVersion>FlashPix Version 1.0</exif:FlashPixVersion>
+  <exif:ColorSpace>Uncalibrated</exif:ColorSpace>
+  <exif:InteroperabilityIndex>N</exif:InteroperabilityIndex>
+  <exif:InteroperabilityVersion>52, 30, 32.751</exif:InteroperabilityVersion>
+  <exif:GPSLongitudeRef>E</exif:GPSLongitudeRef>
+  <exif:GPSLongitude>13, 22, 25.5432</exif:GPSLongitude>
+ </rdf:Description>
+
+</rdf:RDF>
+</x:xmpmeta>
+<?xpacket end='r'?>
+ C 
+
+
+ C		  Y                               H N       Ƌ`:Q&Y      9nZl(-p㓟{'h     \R@o3uv'N     %Wi}c ʭ0 E-%   +[}[  /OI^fdp,Ć^_?}:ΞQ]gYh2Z]ՋEgDhf)ɋK0q,LGduV٭N#kOHW+Tס_D;|t!ΪNrvb=%qkMtQ#}vw]vHxzysl_i-vtv¯\.Ыj]]$:o,o>ma_[
+ȔJYԷ   +콟C  !yWK?܋2 j     U潲˅ˤQX                '           6@03P  H}jr5fKl\m5qYqhci8Ǻ7}Fzetc4
+B/,(%UR:sZy<ٖ.~ɟR`=^%#?1ZwFh?;3Z#.K֓8#s;qWB/(]iCI=*@/.&{')MtZQ5Xn5P𛇤JfKʻs}%eg"d!?iqIpkůhU衈>=քN6:~J)anjZYp{YgPMR\Q;5vA*>2m YC[~(SHl"ٵk֦%r- ?@Mi7D$lSC`Yt4t77:<J  = 	       !1AQ"#2aq @05$34BPRc ?(4i{AQPxUFЀ0	78Z34}JAU\.⊕ۋiYp5n+؜Xm%j!':yǠ-jpQl\!aI)JYNts}xNgRKbr~ ̵dدf饗ro:Wf]Q䎬]߾MPq5v`D֬uq}6YVIu?r(QcF|tp[Htj:DgVD$ 5ЛsX'<5yUdBk\V޵yW=eW[.|sRP >*8LW~isR7+C(lyԋLW')5UԷzNL4JEEX@=hI¤%p4Ji"$nqՑ@Á5|PT*AB)r)܂>XԬ='l>JSs=¡,|UǇ%!	!G\uTgz	j34SWƀ`*I@dc"	ѧ<GPCi'TqwS))m)<)!U|E8wiwKWQ)wD%;?XUXVWKYֵܜ	!>:5C6Th2iԞ'iS!q(5m͑{fO}yM)Y>tJS]j hKvȓ
+"RpVڑFb!Ѵf_sܝf	9¶{CN#<+ШܺEQ4VX'g : 	       !"1A#2Qq 0@a45R$3Pc ?QDq}(Oz4*<URN{M=&ASʺ)GBЗUF{RV(eE-%!q̎p>TЎ7ړ
+[$^֯B Ԝ9?ôu:ţ]jrUՆd0RU.%arԑ:z`nαeJM#)Dd1` 6OÃUY_v쿟SumwjOrJ⧢teN\7+4#!w5Cw)~'K{5{t%u$y]b_J_a)`5Q.,sQ*.<V,$V2ǹ;OM8iM1~	¤]'GϢr,C3tq6Mu(mK(VR0i0,+mRӪaar6_L[ҏXq0|0_ *!5 Oݛʗ&;P>T]Sx=1
+ް)TÉLK>Z]BO/Ʈ( $m7~sFϟ4}i*̖AvK9^bӎiyR Ft)EszU\Gp@d:|  C 			       !1"AQaq2B #@0RSTbrs$3P  ?36S(2wT&kkw~r^Pt7a@$2a,Lˌ:ie#4dDǗlk߸oɓ|#nfBU++BBhD&Z}^0
+|Nr]5n /
+Juro=U֏J$|PǌqJOخ5XeA{Tc"?ԕѬWU7DZUr?dJm*0ے( OeUv鷘KpG&YNjCvE)WD
+i!xQƔn]dja! 90U'!o!T	Y/+XS*$mH(AwJ)- БS&0haJkFQNN/Q0*dڽh-8ȴEBwy^ȓߨM'bArGtK!62xD 3CJSRxԟl).v $")	_Ma]&w\2n)w~9S?Q/6txGL#"^szjV6+Nix\GK&Y҂kw2ᇦՃj5L4f/P6ƧiR Gth,S(Jx(vjNDzyg_v_[^d	_c<cK3 P0%Tcm!t´vmlR^[i^W:9/0(AWCEiW
+9=һX\]OupݔJY]Za[Tl'*xLR7Bjȫ#8Д6|ntAsMYرU"},t vS1'}ZPmJЗA*e'; % %# #-V*Zl9-`{ClbGy}j^Y)s )       !1AQaq @0P  ?!	G}KF6efU"P!/!i84WM;"jfe6
+~U/2]$FTxdԜ]~JpjfWDs<#~ta)`9T;{b$c#(k.4-/&Y$M_{hxfy4 l`/;֥t' f8ʥ%A<?^9Sm+6f(.nƓP 8MGȳBÕDI,Vb"(p'%V5^
+jQt۾mwF
+`12 t4Ժr5;6W~:ߊHa^P|"ǈWUE% RU+)Vm%qh: F%-"q2ʞ"&Ҥ@= K>be+@Y'L)Lxȥ2ҐG,O}* iE_1Ӡe+Dޛ>3&~f6ML~k8T@"[ @-ɥ1YܸTbhSJfbm4}X.N,~MJ6%BV(]w#@Iԓ`Q%޵5b9 K1"l
+@3% |<zDFB6*>mZB`yzI}SgJ= 0ًz,v4	g]I 3      G$I$I$rI$I$*I$I$)Sl$I$Dm%I$Lm%5so{BjNdrrI$$I$I$AI$I$I$I$I$O *       !1AQaq@ 0P ?ɘDvҍ;]qV~6XUnjX+yv-Rn^)_KJtA} 	x֖\.ƄAΞz)J6%7[a-I؁JUf"#zEl! bH7C@+9j u@-lUB:SYqĢ$_	5*o*Oabj;PÀ-7]=@Dv58]1]37M76MN{U^p|-eאVLwPO:ߍhcC9Q5αu6{W;2U({RAVF
+f&+`} #a8ڈA3paDPDUIn#WUb[/sBW"Ѽw4E7F{kI%t\T],;V+-zik$J!eY|˭,Ɔ=uC33B6H,,̓h-ڇ8neLYlҏV܋k9kS*qʀ,ӀǘLVLbm,c.νP5kEIb3`>?O1a[k
+8D4jz?@KA>_sȤ`!/ 3 *        !1AQaq@ 0P ?
+n_oB5xcRNRZ$O/'/=i7q:ڈD"L%<~v^X}eeCu@Yj'Î^)ǙHʅ3.'e9tyCЏy0KąSTNRFR<m³&gNU ybDֳP5ӝB149Nc]:1_^FVĦtʭRU鹣z4S5}IB
+pUȃǖbxGύӒys޼o
+1cXaYvlrŇQY<{SI@7Kछ+8s484;E0]+Yy]3پXkСWl"oPd̴sʅԈjE]Rա ÏlFX-ke^b Ned&81p,$ RhFdIl~.i7u1$\,Hi&#^C9+?QX0bRG=*a9CJbiٟ}	D#}U+|Ten9.Rol1b528$nMgšɗEtJ0E)u~+SL &       !1AQaq @0P  ?;Y(>*Tʯ $s pF-JJ$4  Z`ZiHM|ADyb0[f)ۿG]W&c^gXTRW@HD)Qi ϑP1
+0FTv3^1*x4} !meKTUniK	GQ&6L~]-d(%᎐qS!rU^qtQvP9@khKKwfD5j;{ޏMGuC hV@1Qކa#6r^~FFǒhbE;K5?YcB2G&ƃgWgPlR<u qMiz,jQ񪈄K(Y{Xtǉ1Shq誻<ǫar.iRP#WaӀC!PM9+?Gr󣲊bh/F?ى0슯w,Tq~Gˍgr?߿l#_μ7} i$k?8NZt^wmԞ4G!t="]"0tJǁ
+#cӁ3P+.X)tںE.ק!Bo7M13`)b9p4考 \-2* [Vu+vI%XH4ʀ`\tp.
+ jv!aTSv4oE <c·ul]l X
+u(qԎI8FGaJK"H  i{*={ƭn43
+1d @:
+fƉI  {feؕͻPcr\PVVD/EFx%X{a&*  jnD0X:$tmFas?CЋԓۏ
\ No newline at end of file
diff --git a/core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php b/core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php
new file mode 100644
index 0000000..274e5b3
--- /dev/null
+++ b/core/modules/media/tests/src/FunctionalJavascript/MediaSourceImageTest.php
@@ -0,0 +1,79 @@
+<?php
+
+namespace Drupal\Tests\media\FunctionalJavascript;
+
+use Drupal\media\Entity\Media;
+
+/**
+ * Tests the image media source.
+ *
+ * @package Drupal\Tests\media\FunctionalJavascript
+ *
+ * @group media
+ */
+class ImageTest extends MediaSourceTestBase {
+
+  /**
+   * Just dummy test to check generic methods.
+   */
+  public function testMediaImageSource() {
+    $type_name = 'test_media_image_type';
+    $source_field_id = 'field_media_image';
+    $provided_fields = [
+      'mime',
+      'width',
+      'height',
+      'size',
+      'created',
+      'model',
+      'iso',
+      'exposure',
+      'aperture',
+      'focal_length',
+    ];
+
+    $session = $this->getSession();
+    $page = $session->getPage();
+    $assert_session = $this->assertSession();
+
+    // Create image media source.
+    $this->createMediaTypeTest($type_name, 'image', $provided_fields);
+
+    // Create a supported and a non-supported field.
+    $fields = [
+      'field_string_mime' => 'string',
+      'field_string_width' => 'string',
+      'field_string_model' => 'string',
+    ];
+    $this->createMediaFields($fields, $type_name);
+
+    // Hide the media name to test default name generation.
+    $this->hideMediaField('name', $type_name);
+
+    $this->drupalGet("admin/structure/media/manage/$type_name");
+    $page->selectFieldOption("field_map[mime]", 'field_string_mime');
+    $page->selectFieldOption("field_map[width]", 'field_string_width');
+    $page->selectFieldOption("field_map[model]", 'field_string_model');
+    $page->pressButton('Save');
+
+    // Create a media item.
+    $this->drupalGet("media/add/{$type_name}");
+    $page->attachFileToField("files[{$source_field_id}_0]", \Drupal::root() . '/core/modules/media/tests/fixtures/exif_example.jpeg');
+    $assert_session->assertWaitOnAjaxRequest();
+    $page->fillField("{$source_field_id}[0][alt]", 'EXIF Image Alt Text');
+    $page->pressButton('Save and publish');
+
+    $assert_session->addressEquals('media/1');
+
+    // Make sure the thumbnail is created from uploaded image.
+    $assert_session->elementAttributeContains('css', '.image-style-thumbnail', 'src', 'exif_example.jpeg');
+
+    // Load the media and check that all fields are properly populated.
+    $media = Media::load(1);
+    $this->assertEquals('exif_example.jpeg', $media->label());
+    $this->assertEquals('Drupal EXIF Camera', $media->get('field_string_model')->value);
+    $this->assertEquals('200', $media->get('field_string_width')->value);
+    $this->assertEquals('image/jpeg', $media->get('field_string_mime')->value);
+  }
+
+}
diff --git a/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml b/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml
new file mode 100644
index 0000000..a040f31
--- /dev/null
+++ b/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml
@@ -0,0 +1,46 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.media.image.field_media_image
+    - image.style.thumbnail
+    - media.type.image
+  module:
+    - image
+id: media.image.default
+targetEntityType: media
+bundle: image
+mode: default
+content:
+  created:
+    type: datetime_timestamp
+    weight: 10
+    region: content
+    settings: { }
+    third_party_settings: { }
+  field_media_image:
+    settings:
+      progress_indicator: throbber
+      preview_image_style: thumbnail
+    third_party_settings: { }
+    type: image_image
+    weight: 26
+    region: content
+  name:
+    type: string_textfield
+    weight: -5
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: { }
+  uid:
+    type: entity_reference_autocomplete
+    weight: 5
+    settings:
+      match_operator: CONTAINS
+      size: 60
+      placeholder: ''
+    region: content
+    third_party_settings: { }
+hidden: { }
diff --git a/core/profiles/standard/config/optional/core.entity_view_display.media.image.default.yml b/core/profiles/standard/config/optional/core.entity_view_display.media.image.default.yml
new file mode 100644
index 0000000..e541d7f
--- /dev/null
+++ b/core/profiles/standard/config/optional/core.entity_view_display.media.image.default.yml
@@ -0,0 +1,51 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.field.media.image.field_media_image
+    - image.style.thumbnail
+    - media.type.image
+  module:
+    - image
+    - user
+id: media.image.default
+targetEntityType: media
+bundle: image
+mode: default
+content:
+  created:
+    label: hidden
+    type: timestamp
+    weight: 0
+    region: content
+    settings:
+      date_format: medium
+      custom_date_format: ''
+      timezone: ''
+    third_party_settings: {  }
+  field_media_image:
+    label: above
+    settings:
+      image_style: ''
+      image_link: ''
+    third_party_settings: {  }
+    type: image
+    weight: 6
+    region: content
+  thumbnail:
+    type: image
+    weight: 5
+    label: hidden
+    settings:
+      image_style: thumbnail
+      image_link: ''
+    region: content
+    third_party_settings: {  }
+  uid:
+    label: hidden
+    type: author
+    weight: 0
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden: {  }
diff --git a/core/profiles/standard/config/optional/field.field.media.image.field_media_image.yml b/core/profiles/standard/config/optional/field.field.media.image.field_media_image.yml
new file mode 100644
index 0000000..628c386
--- /dev/null
+++ b/core/profiles/standard/config/optional/field.field.media.image.field_media_image.yml
@@ -0,0 +1,40 @@
+langcode: en
+status: true
+dependencies:
+  config:
+    - field.storage.media.field_media_image
+    - media.type.image
+  module:
+    - image
+  enforced:
+    module:
+      - media
+id: media.image.field_media_image
+field_name: field_media_image
+entity_type: media
+bundle: image
+label: field_media_image
+description: ''
+required: false
+translatable: true
+default_value: { }
+default_value_callback: ''
+settings:
+  file_extensions: 'png gif jpg jpeg'
+  alt_field: true
+  alt_field_required: true
+  title_field: false
+  title_field_required: false
+  max_resolution: ''
+  min_resolution: ''
+  default_image:
+    uuid: null
+    alt: ''
+    title: ''
+    width: null
+    height: null
+  file_directory: '[date:custom:Y]-[date:custom:m]'
+  max_filesize: ''
+  handler: 'default:file'
+  handler_settings: { }
+field_type: image
diff --git a/core/profiles/standard/config/optional/field.storage.media.field_media_image.yml b/core/profiles/standard/config/optional/field.storage.media.field_media_image.yml
new file mode 100644
index 0000000..1597ce6
--- /dev/null
+++ b/core/profiles/standard/config/optional/field.storage.media.field_media_image.yml
@@ -0,0 +1,32 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - file
+    - image
+    - media
+  enforced:
+    module:
+      - media
+id: media.field_media_image
+field_name: field_media_image
+entity_type: media
+type: image
+settings:
+  default_image:
+    uuid: null
+    alt: ''
+    title: ''
+    width: null
+    height: null
+  target_type: file
+  display_field: false
+  display_default: false
+  uri_scheme: public
+module: image
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/core/profiles/standard/config/optional/media.type.image.yml b/core/profiles/standard/config/optional/media.type.image.yml
new file mode 100644
index 0000000..a823e03
--- /dev/null
+++ b/core/profiles/standard/config/optional/media.type.image.yml
@@ -0,0 +1,14 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - media
+id: image
+label: Image
+description: 'Use the "Image" media type for uploading local images.'
+handler: image
+queue_thumbnail_downloads: false
+new_revision: false
+handler_configuration:
+  source_field: field_media_image
+field_map: { }
