Pentru a obține URI-ul derivat al imaginii pentru o imagine căreia i se aplică un stil de imagine specific, puteți utiliza următorul cod.
// Încărcați instanța ImageStyle în $image_style, de exemplu cu
// $image_style = ImageStyle::load($id).
// $image_uri este calea/URI-ul pentru imaginea căreia i se aplică stilul.
if ($image_style->supportsUri($image_uri)) {
$derivative_uri = $style->buildUri($image_uri);
}
Rețineți că derivatele de imagine sunt create numai atunci când adresa URL este returnată de la $image_style->buildURL($image_uri)
este solicitat (de la un browser). Construirea URI-ului (sau URL-ului) nu generează imaginea derivată; returnează URI (URL-ul) pentru o imagine care nu ar putea exista încă.
Pentru a verifica o imagine derivată ar putea fi creată, un cod similar cu cel folosit de la ImageStyleDownloadController::deliver()
ar trebui folosit.
if ($image_style->supportsUri($image_uri)) {
$derivative_uri = $style->buildUri($image_uri);
dacă (!file_exists($image_uri)) {
$path_info = pathinfo($image_uri);
$converted_image_uri = $path_info['dirname'] . DIRECTORY_SEPARATOR . $path_info['nume fișier'];
if (fișier_există($converted_image_uri)) {
$image_uri = $convertited_image_uri;
}
}
$succes = file_exists($derivative_uri) || $image_style->createDerivative($image_uri, $derivative_uri);
dacă ($succes) {
$image = Drupal::service('image.factory')->get($derivative_uri);
$uri = $imagine->getSource();
}
}