Redimensionando imagens para o tamanho real usado no editor?

20

Existe uma maneira de redimensionar as imagens para o tamanho real que serão mostradas no post? Tenho usuários que importam uma imagem grande e a redimensionam no editor visual. Isso é fácil, pois eles podem simplesmente arrastar a imagem até o tamanho desejado, sem abrir um editor de imagem, redimensionar a imagem, salvá-la e enviá-la como um anexo separado. Obviamente, isso às vezes resulta em uma imagem com 100 px de largura na postagem, mas 1500 px na realidade.

Existe um plugin que faz isso quando uma nova postagem é salva? Gostaria de manter a imagem em tamanho real existente (para vincular ou redimensionar posteriormente), mas basta adicionar um tamanho extra (e salvá-lo no _wp_attachment_metadataobjeto), para que este post tenha a imagem no tamanho correto e uma referência a o anexo em tamanho normal.

Obviamente, todas as postagens existentes também devem ser tratadas uma vez. <img>etiquetas não pode ter apenas um width, apenas um height, ou nenhum deles: isso deve ser limpo, por isso, todos eles têm a correta width, heighte uma imagem desse tamanho.

Jan Fabry
fonte
Você concorda com uma solução do lado do servidor que redimensiona imagens dinamicamente com base nos parâmetros de obtenção de um URL de imagem existente? Apache / Mod_Rewrite?
hakre 7/09/10
@hakre: Você quer dizer um filtro pós-salvamento que passa pelo post e reescreve cada imagem como image.png?w=300&h=400, ou image-300x400.png, que eu selecionaria via Mod_Rewrite e redimensionava (e armazena em cache) a pedido? Isso é uma vantagem em criar as imagens redimensionadas uma vez (nessa ação pós-salvamento) e servi-las como arquivos estáticos?
Jan Fabry
@ Jan Fabry Sim, era isso que estava em minha mente. A vantagem é que você só cria a imagem mediante solicitação, desde que o autor edite a postagem, isso não criará arquivos por si só. Além de não bloquear a edição, ele é mais dissociado do wp, para que você possa criar algum serviço de servidor, extravagância de cache da CDN ou qualquer outra coisa. :) --- wp.com faz algo semelhante se eu achar isso certo.
hakre
Combinado com o cache, essa abordagem realmente brilha. Eu diria que existe um plugin para isso. Você também pode executar uma instalação do Zenphoto junto com um plug-in como o Zenphoto Gallery (meu: lmazy.verrech.net/zenphoto-gallery )
Raphael
@Raphael: De fato, hoje pesquisei os possíveis plugins, e alguns adotam essa abordagem. Se você tiver algo a acrescentar à minha lista , faça isso, é editável por todos.
Jan Fabry

Respostas:

11

Criei dois plugins que, juntos, devem resolver minhas necessidades. Eles estão atualmente em um estágio alfa inicial e todos os comentários são bem-vindos.

O plug-in base é um redimensionador sob demanda . Esse plug-in monitora solicitações de arquivos inexistentes no diretório de uploads e cria imagens do tamanho solicitado, se necessário. Por exemplo, image-200x100.jpgcriará e retornará image.jpg, mas redimensionado para 200 por 100 pixels. A imagem é salva com esse nome no diretório, para que outras solicitações sejam tratadas diretamente pelo servidor.

O segundo plug-in, Redimensionar tags img , modifica as <img>tags para que seus srcatributos incluam dados de largura e / ou altura. Isso permite que o primeiro plug-in sirva as imagens corretas. Juntos, eles fazem o que eu quero, e eu só preciso criar uma função única para converter todas as postagens existentes, mas isso deve ser fácil (não quero me conectar a the_contentalgo que deve ser executado apenas uma vez).

Um terceiro plug-in "bônus", as imagens intermediárias virtuais , intercepta a criação das imagens intermediárias ao carregar uma nova imagem no WordPress. Como eles ainda são criados pelo primeiro plug-in, se solicitado, isso permite especificar vários tamanhos de imagem sem ocupar espaço em disco, a menos que sejam realmente usados. Isso não é necessário para que os dois primeiros funcionem, mas foi uma adição fácil e destaca o fato de que ainda preciso solucionar o editor de imagens do WordPress, mas farei isso quando criar o editor de miniaturas , que também use o primeiro plugin.

Jan Fabry
fonte
11
Isso soa realmente excelente! Mal posso esperar para ter tempo para experimentá-los quando preciso deles para cenários do mundo real.
MikeSchinkel
Coisas boas. Você está pensando em adicioná-los ao repositório do plugin worpdress?
hakre
@ hakre: Sim, de fato. Uma vez eu consegui-los pronto para revisão por pares :-)
Jan Fabry
4

Pesquisei no diretório do plug-in "resize"ou "crop"(este último em outra pergunta ) e observei minhas descobertas em uma planilha pública do Google . A pesquisa de plug-ins é muito confusa nos números de resultados (a última página da "resize"pesquisa mostra "Mostrando 145-150 de 273 plug-ins"), portanto, talvez eu tenha perdido alguns. Notas semi-relacionadas: todo mundo parece pensar que o mundo precisa de outro plug-in de apresentação de slides. Poucos parecem perceber que content_save_prepode ser um filtro melhor para análise pesada do que the_content.

Ainda não testei nenhum desses plugins, mas aqui está uma lista de plugins que parecem fazer o que eu quero. Eu adicionei o número da versão "Compatível até" entre parênteses.

Pensamentos pessoais: os quatro primeiros reescrevem o URL em uma página dinâmica (algo como /wp-content/plugins/my-plugin/image.php?src=[original src]&w=100&h=50), com formas variadas de armazenamento em cache. Prefiro uma imagem real criada conforme a necessidade, semelhante à abordagem adotada pelo ImageScaler. No entanto, eu dividiria isso (e incluiria a sugestão de hakre nos comentários) e primeiro reescreveria todos os URLs de /wp-content/uploads/2010/11/image.jpgpara /wp-content/uploads/2010/11/image-100x50.jpge, em seguida, deixaria um script criar as imagens ausentes. A primeira solicitação para esta imagem cria a imagem, todas as solicitações subsequentes usam essa imagem criada. Isso também me permite dividir a funcionalidade entre diferentes plugins. Vou postar esta solução em uma resposta separada.

Esses plugins limitam as imagens a um determinado tamanho máximo (como isso é diferente da especificação $content_width?):

O seguinte plugin é interessante por outros motivos:

Esta é uma publicação do Wiki da comunidade, para que possa ser atualizada se você encontrar novos plugins.

Jan Fabry
fonte
0

Que tal utilizar a variável timthumb e passing para alterar automaticamente o tamanho / dimensões da imagem e os níveis de zoom? Dessa forma, os tamanhos da imagem original ainda podem ser mantidos. Se você precisar de alguns exemplos abaixo, informe-me.

NetConstructor.com
fonte
0

O Wordpress oferece três tamanhos padrão (pequeno, médio, grande) que podem ser configurados. Se você usá-los, o Wordpress cria cópias redimensionadas. Provavelmente, é um bom estilo usá-las e definir o número para que elas se ajustem ao estilo atual. Isso resulta em imagens sem tamanhos diferentes em toda a página e permite ajustes globais quando o tema muda.

Rafael
fonte
Sei que é melhor manter tamanhos de imagem predefinidos, mas meus clientes não :-) Se eles podem redimensionar a imagem no editor, é lógico que o sistema siga essa opção.
Jan Fabry
Bem, você pode remover esta possibilidade e forçá-los a trabalhar de forma limpa;)
Raphael
Essa também é uma pergunta interessante: "Como desabilito a funcionalidade de redimensionamento no TinyMCE?" Se você souber a resposta, crie uma nova pergunta e responda você mesma, provavelmente será útil para outras pessoas.
Jan Fabry
0

O recentemente lançado plugin Image Pro parece fazer exatamente isso. Ainda não havia me testado, a demonstração parece muito impressionante, observe uma compatibilidade ruim do navegador (somente Firefox no momento).

Rarst
fonte