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?


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:



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

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.


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.


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.


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)." >";

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.