Pergunta

Para uma imagem de aplicação web de hospedagem:

Para minhas imagens armazenadas, é possível criar miniaturas em tempo real usando PHP (ou qualquer outro), ou devo poupar 1 ou mais diferentes miniaturas de tamanho para o disco e carregar apenas aqueles?

Qualquer ajuda é apreciada.

Foi útil?

Solução

Salvar miniaturas para disco. processamento de imagem tem um monte de recursos e, dependendo do tamanho da imagem, pode exceder o limite de memória padrão permitido para php. É uma preocupação menor, se você tem seu próprio servidor com apenas a sua aplicação em execução, mas ainda tem um monte de poder de CPU e memória para imagens de redimensionamento. Se você está pensando em criar miniaturas em tempo real de qualquer maneira, você não tem que mudar muito -. Após o primeiro pedido, criar a miniatura do arquivo de origem, salvar no disco e sobre os pedidos subsequentes apenas lê-lo fora do disco

Outras dicas

Eu uso phpThumb , como é o melhor dos dois mundos. Você pode criar miniaturas na mosca, mas ele armazena automaticamente as imagens para acelerar as solicitações futuras. Ele cria uma boa invólucro em torno das bibliotecas GD e ImageMagick. Vale a pena olhar!

Seria muito melhor para armazenar em cache as miniaturas. Gerá-los na mosca seria muito desgastante para o sistema.

Depende do padrão de uso do site, mas, basicamente, quantas vezes você espera que cada imagem para ser visto?

No caso de miniaturas, eles são mais propensos a ser em torno de um bom tempo (a imagem é carregada uma vez e nunca mudou, por isso, a miniatura não muda qualquer um), por isso é geralmente útil para gerar quando a plena imagem é carregada e armazená-los para mais tarde. A menos que o site está completamente morto, eles vão ser vistos muitos (centenas ou milhares de vezes) ao longo da vida e do disco é muito mais barato do que latência nos dias de hoje. Isso também se torna mais significativo como a carga no servidor aumenta, é claro.

Por outro lado, para algo como gráficos de ações que são atualizados a cada hora (se não mais frequentemente), que seria uma situação em que você faria melhor para criá-los em tempo real, de modo a evitar perda de tempo CPU em gerar constantemente imagens que nenhum usuário nunca vai ver.

Ou, se você quiser começar a fantasia, você pode otimizar para lidar com qualquer padrão de acesso ao gerar as imagens em tempo real a primeira vez que eles são necessários e, em seguida, mostrando a pré-gerado um depois, até os dados é gerado de mudanças, em que ponto de excluí-lo para que ele irá ser regenerado na próxima vez que for necessário. Mas isso seria um exagero para algo tão estático como miniaturas, IMO.

visite a gd biblioteca e imagemagick

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top