Skip to content

Instantly share code, notes, and snippets.

@slivorezka
Created November 8, 2016 10:40
Show Gist options
  • Save slivorezka/925dff0369e8eddc7e4ffa4801ab0240 to your computer and use it in GitHub Desktop.
Save slivorezka/925dff0369e8eddc7e4ffa4801ab0240 to your computer and use it in GitHub Desktop.
Drupal 8: Get Image URL / URI with Image Style
<?php
use Drupal\file\Entity\File;
use Drupal\image\Entity\ImageStyle;
// File ID.
$fid = 123;
// Load file.
$file = File::load($fid);
// Get origin image URI.
$image_uri = $file->getFileUri();
// Load image style "thumbnail".
$style = ImageStyle::load('thumbnail');
// Get URI.
$uri = $style->buildUri($image_uri);
// Get URL.
$url = $style->buildUrl($image_uri);
@stevecowie
Copy link

That saved me some time. 👍

@nguyenthanhxuan
Copy link

Thanks

@ryandorward
Copy link

ryandorward commented Nov 23, 2021

Thank you this is great and pointed me in the right direction. I had to use the file_create_url function however to get the correct URL (D9.2.9)

// ...

// Load image style "thumbnail".
$style = ImageStyle::load('thumbnail');
// Get URI.
$uri = $style->buildUri($image_uri);
// Get URL.
$url = file_create_url($image_uri);

And then I wanted the relative path instead of the URL so:

$url = parse_url($url)['path'];

@BaluErtl
Copy link

BaluErtl commented Aug 4, 2022

Thanks for sharing this solution, it worked for me like a charm.

@renato-flexas
Copy link

Thank you this is great and pointed me in the right direction. I had to use the file_create_url function however to get the correct URL (D9.2.9)

// ...

// Load image style "thumbnail".
$style = ImageStyle::load('thumbnail');
// Get URI.
$uri = $style->buildUri($image_uri);
// Get URL.
$url = file_create_url($image_uri);

And then I wanted the relative path instead of the URL so:

$url = parse_url($url)['path'];

don't use file_create_url , it's deprecated , use \Drupal::service('file_url_generator') instead

@piridium
Copy link

piridium commented Oct 7, 2022

Thank you this is great and pointed me in the right direction. I had to use the file_create_url function however to get the correct URL (D9.2.9)

// ...

// Load image style "thumbnail".
$style = ImageStyle::load('thumbnail');
// Get URI.
$uri = $style->buildUri($image_uri);
// Get URL.
$url = file_create_url($image_uri);

And then I wanted the relative path instead of the URL so:

$url = parse_url($url)['path'];

don't use file_create_url , it's deprecated , use \Drupal::service('file_url_generator') instead

See https://www.drupal.org/node/2940031 for additional examples.

@guarda00
Copy link

cool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment