Программное создание пресета изображения

Опубликовано 2011.10.21

Создать пресет изображения,или стиль вывода можно и программно. Рассмотрим пример программного создания пресета для Drupal 7. Вначале задается имя стиля вывода.Далее сохраняем его как есть.Это необходимо для получения его уникального номера isid. Получив его идентификатор можно добавлять к нему различные эффекты. Я например сделал масштабирование до трёхсот пикселей в ширину. Посмотрев документацию модуля вы найдете системные названия других эффектов. Вряд ли программное создание пресета будет актуальном. Лично мне понадобилось создать пресет при установке модуля. Я просто поместил этот код в hook_install своего модуля и стиль вывода успешно создался. Применять этот стиль также можно программно. Почитать об этом можно в статье программный вывод изображений. Собственно код:
  1. $style = array('name' => 'max_width_300');
  2. $style_create = image_style_save($style);
  3.  
  4. $style=image_style_load('max_width_300');
  5. $isid=$style['isid'];
  6. //debug($style);
  7.  
  8. $effect=array (
  9. 'label' => 'Scale',
  10. 'help' => 'Scaling will maintain the aspect-ratio of the original image. If only a single dimension is specified, the other dimension will be calculated.',
  11. 'effect callback' => 'image_scale_effect',
  12. 'form callback' => 'image_scale_form',
  13. 'summary theme' => 'image_scale_summary',
  14. 'module' => 'image',
  15. 'name' => 'image_scale',
  16. 'data' =>
  17. 'width' => '300',
  18. 'height' => '',
  19. 'upscale' => 0,
  20. ),
  21. 'ieid' => NULL,
  22. 'isid' => $isid,
  23. 'weight' => '1',
  24. );
  25.  
  26. image_effect_save($effect);