Reconstruir imagens a partir do estilo da imagem

58

Eu tenho um estilo de imagem no Drupal 7. Anexei várias imagens aos nós e exibi-las com base nesse estilo. Alterei os efeitos nesse estilo de imagem, mas as imagens existentes não estão sendo recriadas com os novos efeitos de estilo de imagem. Eles são exibidos com os efeitos antigos do estilo de imagem.

Se eu anexar novas imagens, elas usarão os novos efeitos. A exclusão de uma imagem existente e o novo upload faz com que a imagem use os efeitos antigos.

O manual (suponho incorretamente) afirma que apenas salvar um estilo de imagem causa uma reconstrução: http://drupal.org/documentation/modules/image

Eu limpei o cache.

Como forço uma reconstrução?

Justin
fonte
11
Você realmente clicou no botão Atualizar estilo quando estava na página Estilo da imagem? Acabei de fazer alguns testes e verifiquei que quando você clica nele, todos os arquivos gerados no diretório de arquivos são excluídos.
Juampy NR
O manual está correto. Alterar um estilo de imagem, por exemplo, adicionando, editando ou excluindo um efeito, libera o estilo da imagem. Pode ser o cache do seu navegador (ou outro intermediário) ou um problema de direitos quando os derivados são excluídos.
fietserwin
Eu costumava costume Drush comando para regenerar imagens gist.github.com/typhonius/8599853
apostnikov

Respostas:

113

Limpar o cache, não liberará os estilos de imagem: http://drupal.org/node/997332

Você poderia:

  • exclua-os manualmente
  • use image_style_flush
  • use a linha de comando: rm -rf sites/default/files/styles
  • use drush: drush image-flush
ipwa
fonte
9
drush image-flush style_name é uma dádiva de Deus. :-)
Sean Robertson
15

Para liberar nomes de estilo de imagem no Drupal 7 por meio da interface do usuário, tente este módulo de contribuição:

http://drupal.org/project/imagestyleflush

Ele fornece uma opção de liberação para cada Nome do estilo de imagem. Ele também tem uma opção para liberar todos os nomes de estilo de imagem de uma só vez.

Depois que o módulo estiver ativado, na UI do administrador, clique aqui para liberar um estilo de imagem específico:

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

Este é um erro com os estilos de imagem. Se você estiver editando um estilo de imagem e editando um efeito que já está presente, as imagens não serão liberadas na atualização. No entanto, se você excluir esse efeito (não estou falando sobre excluir o estilo da imagem - exclua o efeito no estilo de imagem específico) e crie um novo, as imagens serão liberadas na atualização.

laskiyt
fonte
A função image_effect_save () chama image_style_flush (), portanto isso não é um bug.
fietserwin
11
Só porque algo está sendo chamado não significa que não seja um bug. A funcionalidade não está presente quando deveria estar. Essa é a definição de um erro ...
Kirkland
3

Existe outra maneira mais fácil. É mais uma substituição do que atualização, mas funciona bem. Você pode criar um novo estilo de imagem com base no antigo, mas com os novos recursos (ações da imagem) que desejar. Em seguida, exclua o estilo antigo; na página de confirmação de exclusão, você encontrará uma lista suspensa com os estilos de imagem disponíveis, que podem ser usados ​​para substituir o antigo. Esta é uma função de substituição de estilo de imagem padrão, presumo.

WtheM
fonte
3

Edite o estilo desejado em admin / config / media / image-styles.

Clique no botão 'atualizar estilo' na parte inferior, que liberará todas as imagens geradas existentes na pasta de estilos e criará novas.

Jeet
fonte
1

se você possui um modelo personalizado e deseja forçar o estilo para um campo de imagem:

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