Evitar que Drupal 8 aplique estilos de imagen a GIF's

En alguna ocasion, en lugar de imagenes, solemos subir gifs, pero si dejamos que Drupal aplique estilos a los GIF, vamos a perder la animacion que proporcionan. Por suerte es sencillo evitar que Drupal 8 aplique los estilos.

Para ello, debemos hacer uso del hook "hook_entity_display_build_alter()" y comprobar si la entidad es un archivo, el bundle una imagen y si el tipo MIME coincide con GIF, dejar en blanco el estilo de imagen:


/**
 * Implements hook_entity_display_build_alter().
 */
function my_module_entity_display_build_alter(&$build, $context) {
  $entity = $context['entity'];

  // Checks if the entity being displayed is a image media entity in the "full" display mode.
  // For other display modes it's OK for us to process the GIF and lose the animation.
  if ($entity->getEntityTypeId() == 'media' && $entity->bundle() == 'image' && $context['view_mode'] == 'full') {
    /** @var \Drupal\media_entity\Entity\Media $entity */
    if (isset($build['image'][0])) {
      $mimetype = $mimetype = $build['image'][0]['#item']->entity->filemime->value;
      $image_style = $build['image'][0]['#image_style'];
      if ($mimetype == 'image/gif' && !empty($image_style)) {
        $build['image'][0]['#image_style'] = '';
      }
    }
  }
}

Esto es todo, hay que tener en cuenta, que esto solo sirve para cuando es añade un solo gif, ya que se hace la seleccion por el elemento 0, para mas elementos habria que modificar el codigo con un for.