Чтобы получить производный URI изображения для изображения, к которому применяется определенный стиль изображения, вы можете использовать следующий код.
// Загрузите экземпляр ImageStyle в $image_style, например, с помощью
// $image_style = ImageStyle::load($id).
// $image_uri — это путь/URI изображения, к которому применяется стиль.
если ($image_style->supportsUri($image_uri)) {
$derivative_uri = $style->buildUri($image_uri);
}
Имейте в виду, что производные изображения создаются только тогда, когда URL возвращается из $image_style->сборкаURL($image_uri)
запрашивается (из браузера). Создание URI (или URL) не создает производное изображение; он возвращает URI (URL) для изображения, которое еще не может существовать.
Чтобы проверить производное изображение, можно создать код, аналогичный тому, который использовался из ImageStyleDownloadController::доставить()
должен быть использован.
если ($image_style->supportsUri($image_uri)) {
$derivative_uri = $style->buildUri($image_uri);
если (!file_exists($image_uri)) {
$path_info = pathinfo($image_uri);
$converted_image_uri = $path_info['имя_каталога'] . DIRECTORY_SEPARATOR . $path_info['имя файла'];
если (file_exists($converted_image_uri)) {
$image_uri = $converted_image_uri;
}
}
$success = file_exists($derivative_uri) || $image_style->createDerivative($image_uri, $derivative_uri);
если ($ успех) {
$image = Drupal::service('image.factory')->get($derivative_uri);
$uri = $image->getSource();
}
}