четверг, 16 февраля 2012 г.

Drupal - как создать миниатюры для изображений программно


Для получения url изображения, с примененным к нему стилем, используется функция image_style_url( $style_name, $path ) . Но стоит заметить, что когда вызывается данная функция, то drupal вовсе не создает изображение на диске, он просто строит путь до него, а само изображение генерируется при первом обращении по данному url и помещается в sites / default / files / styles / image_style_name / public / filename.jpg (путь может отличаться).

Но если необходимо создать изображение программно (чтобы drupal применил к нему нужный стиль и бережно положил готовый файл в соответствующую  папку), то на помощь придет функция image_style_create_derivative.

Пример использования:
$image_style_name = 'big_image_style';
$image_style = image_style_load( $image_style_name );
$image_uri = 'public://flower.jpg';
$destination = image_style_path( $image_style_name , $image_uri );
image_style_create_derivative( $image_style , $image_uri, $destination);
image_style_path - возвращает путь до папки со стилем.
image_style_load - загружает стиль для последующего использования в image_style_create_derivative