php image drupal caching image-caching

php - Generar imagen con imagen de Drupal antes de usar imagecache_create_path & getimagesize



caching image-caching (1)

Estoy usando imagecache_create_path () y getimagesize () para obtener la ruta de una imagen generada por caché de imágenes y sus dimensiones. Sin embargo, si es la primera vez que accedemos a la página, esa imagen aún no existe y imagecache_create_path tampoco la genera.

Aquí está el código:

// 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);

¿Hay algún método API para obtener la ruta Y generar el archivo? En otras palabras, ¿puedo generar la imagen (utilizando un ajuste preestablecido) de PHP sin mostrarlo en el navegador?

Gracias de antemano


Compruebe la función imagecache_build_derivative() y su uso en imagecache.module. Para su caso, debería funcionar aproximadamente así:

$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 }

(NOTA: código no probado, tenga cuidado con los errores tipográficos y otros errores / descuidos)