code: public function read($filename)
      {
          $meta = new ValueBag();
  
          try {
              $fileEntity = $this->reader->reset()->files($filename)->first();
          } catch (\Exception $e) {
              return $meta;
          }
  
          if ($fileEntity->getMetadatas()->containsKey('File:ImageWidth')) {
              $meta->set(
                  'image.width',
                  new MetaValue((int) $fileEntity->getMetadatas()->get('File:ImageWidth')->getValue()->asString())
              );
          } elseif ($fileEntity->getMetadatas()->containsKey('PNG:ImageWidth')) {
              $meta->set(
                  'image.width',
                  new MetaValue((int) $fileEntity->getMetadatas()->get('PNG:ImageWidth')->getValue()->asString())
              );
          }
  
          if ($fileEntity->getMetadatas()->containsKey('File:ImageHeight')) {
              $meta->set(
                  'image.height',
                  new MetaValue((int) $fileEntity->getMetadatas()->get('File:ImageHeight')->getValue()->asString())
              );
          } elseif ($fileEntity->getMetadatas()->containsKey('PNG:ImageHeight')) {
              $meta->set(
                  'image.height',
                  new MetaValue((int) $fileEntity->getMetadatas()->get('PNG:ImageHeight')->getValue()->asString())
              );
          }
  
          foreach ($fileEntity->getMetadatas() as $metadata) {
              /* @var $metadata Metadata */
  
              if (ValueInterface::TYPE_BINARY === $metadata->getValue()->getType()) {
                  continue;
              }
  
              $groupName = ($metadata->getTag()->getGroupName());
              $name = ($metadata->getTag()->getName());
              $value = (string) $metadata->getValue();
              if ($groupName === 'System' || !ctype_print($value)) {
                  continue;
              }
  
              $path = "$groupName.$name";
              $meta->set($path, new MetaValue($value));
          }
  
          return $meta;
      }
docs: {@inheritdoc}