A URL de uma imagem estilizada pode ser obtida da seguinte forma:
// Carregar a entidade do arquivo de imagem.
$file_entity = \Drupal::entityTypeManager()->getStorage('file')->load($file_entity_id);
// Obter a URI do arquivo.
$original_file_uri = $file_entity->getFileUri();
// Obter o estilo desejado para a imagem.
$style = \Drupal::entityTypeManager()->getStorage('image_style')->load('thumbnail');
// Obter a URI da imagem estilizada.
$styled_file_uri = $style->buildUri($original_file_uri);
// Verificar a existência do arquivo da image estilizada.
// Criar o arquivo caso não exista.
if (!file_exists($styled_file_uri)) {
$style->createDerivative($original_file_uri, $styled_file_uri);
}
// Obter a URL da imagem estilizada.
$styled_file_url = $style->buildUrl($styled_file_uri);
Caso a imagem seja campo de um conteúdo, $file_entity
pode ser definida da seguinte maneira:
$file_entity = $node->field_image->entity;
onde $node
é a entidade de conteúdo e field_image
é o nome do campo de imagem.
Para saber mais sobre como file_exists()
funciona nesse caso, confira esse link: file_exists() and Drupal file URI -- how does it work?