Я использую imagecache_create_path () и getimagesize (), чтобы получить путь к образуемому imagecache изображению и его размерам. Однако, если это первый раз, когда мы обращаемся к странице, изображение пока не существует, и imagecache_create_path также не генерирует ее.
Вот код:
// we get the image path from a preset (always return the path even if the file doesn't exist) $small_image_path = imagecache_create_path('gallery_image_small', $image["filepath"]); // I get the image dimensions (only if the file exists already) $data_small = list($width, $height, $type, $image_attributes) = @getimagesize($small_image_path);
Есть ли какой-либо метод API для получения пути И генерировать файл? Другими словами, могу ли я сгенерировать изображение (используя пресет) из PHP, не показывая его в браузере?
заранее спасибо
Проверьте imagecache_build_derivative()
и ее использование в imagecache.module. Для вашего случая он должен работать примерно так:
$presetname = 'gallery_image_small'; $preset = imagecache_preset_by_name($presetname); $src = $image["filepath"]; $dst = imagecache_create_path($presetname, $src); // Ensure existing derivative or try to create it on the fly if (file_exists($dst) || imagecache_build_derivative($preset['actions'], $src, $dst)) { // Do what you need to do with the image }
(ПРИМЕЧАНИЕ: непроверенный код, остерегайтесь опечаток и других ошибок / недочетов)