Reconstruir imágenes desde el estilo de imagen

58

Tengo un estilo de imagen en Drupal 7. Adjunté varias imágenes a un nodo y visualicé las imágenes basadas en este estilo. Luego cambié los efectos en este estilo de imagen, pero las imágenes existentes no se recrean con los nuevos efectos de estilo de imagen. Se muestran con los viejos efectos de estilo de imagen.

Si adjunto nuevas imágenes, usan los nuevos efectos. Eliminar una imagen existente y volver a cargarla hace que la imagen use los efectos antiguos.

El manual (supongo incorrectamente) afirma que solo guardar un estilo de imagen provoca una reconstrucción: http://drupal.org/documentation/modules/image

He limpiado el caché.

¿Cómo fuerzo una reconstrucción?

Justin
fuente
1
¿Realmente hizo clic en el botón Actualizar estilo cuando estaba en la página Estilo de imagen? Acabo de hacer algunas pruebas y verifiqué que cuando haces clic en él, todos los archivos generados en el directorio de archivos se eliminan.
Juampy NR
El manual es correcto. Cambiar un estilo de imagen, por ejemplo, agregando, editando o eliminando un efecto, elimina el estilo de la imagen. Puede ser el caché de su navegador (u otro intermedio) o un problema de derechos cuando se eliminan los derivados.
fietserwin
Utilicé el comando drush personalizado para regenerar imágenes gist.github.com/typhonius/8599853
apostnikov

Respuestas:

113

Borrar caché, no vaciará estilos de imagen: http://drupal.org/node/997332

Tú podrías:

  • eliminarlos manualmente
  • use image_style_flush
  • usa la línea de comando: rm -rf sites/default/files/styles
  • usar drush: drush image-flush
ipwa
fuente
99
drush image-flush style_name es un regalo del cielo. :-)
Sean Robertson
15

Para vaciar nombres de estilo de imagen en Drupal 7 a través de la interfaz de usuario, pruebe este módulo contrib:

http://drupal.org/project/imagestyleflush

Le ofrece una opción de descarga para cada Nombre de estilo de imagen. También tiene una opción para vaciar todos los nombres de estilo de imagen a la vez.

Una vez que el módulo está habilitado, en la interfaz de usuario de administrador, vaya aquí para enjuagar un estilo de imagen particular:

admin/config/media/image-styles
tyler.frankenstein
fuente
9

Este es un error con los estilos de imagen. Si está editando un estilo de imagen y edita un efecto que ya está presente, las imágenes no se borrarán con la actualización. Sin embargo, si elimina ese efecto (no estoy hablando de eliminar el estilo de imagen, elimine el efecto dentro del estilo de imagen en particular) y cree uno nuevo, las imágenes se enjuagarán en la actualización.

laskiyt
fuente
La función image_effect_save () llama a image_style_flush (), por lo que esto no es un error.
fietserwin
1
El hecho de que algo se llame no significa que no sea un error. La funcionalidad no está presente cuando debería estar. Esa es la definición de un error ...
Kirkland
3

Hay otra forma más fácil. Es más un reemplazo que una actualización, pero funciona bien. Puede crear un nuevo estilo de imagen basado en el anterior, pero con las nuevas características (acciones de imagen) que desee. Luego borre el viejo estilo; en la página de confirmación de eliminación, encontrará una lista desplegable con estilos de imagen disponibles, que puede usar para reemplazar la anterior. Esta es una función de reemplazo de estilo de imagen estándar, supongo.

WtheM
fuente
3

Edite el estilo que desee de admin / config / media / image-styles.

Haga clic en el botón 'actualizar estilo' en la parte inferior, que vaciará todas las imágenes generadas existentes en la carpeta de estilos y creará nuevas.

Jeet
fuente
1

Si tiene una plantilla personalizada y desea forzar el estilo para un campo de imagen:

 $style='full_content_width';
 $path=$node->my_img_field['und']['0']['uri'];
 $style_url = image_style_url($style, $path);
  print "<img src=".file_create_url($style_url)." >";
Matoeil
fuente