Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Preciso criar imagens menores, a partir de imagens gigantes, fotos de 12MP pra cima. Preciso criar 4 ou 5 imagens menores a partir dela, e isso da deixando meu servidor muito lento e demorado. Estou usando a classe Canvas, e com alguns testes vi que a performance é a mesma se eu mesmo tentar fazer-la sem a classe. Alguem tem alguma ideia de como fazer de forma mais rapida? Pensei em jogar uma aplicação para fazer isso em C, mas o servidor não da suporte à exec(), system() e derivados
Abraços
Olá Henrique, obrigado pela resposta, mas o meu problema é na demora de redimensionamento mesmo. Como a imagem é grande, o processamento é muito grande tambem, fazendo com o servidor aborte o processo
Pelo que eu entendi, você precisa da imagem com a dimensao normal dela, né?
Se foi oq eu entendi, eu uparia essa imagem, depois chamaria as imagens quando necessario e redimensionaria com css...ai nao precisaria upar tanta imagem e seria bem mais pratico
>
Pelo que eu entendi, você precisa da imagem com a dimensao normal dela, né?
Se foi oq eu entendi, eu uparia essa imagem, depois chamaria as imagens quando necessario e redimensionaria com css...ai nao precisaria upar tanta imagem e seria bem mais pratico
Imagina uma galeria de imagens com 10 itens cada um com 15 mb...
Erick, obrigado pelas ideias, e foi justamente isso que pensei, vou fazer somente o upload. Em uma pagina de administração vou criar os thumbs que quero, e deixar um status como "processando", ou algo assim. Seria legal se eu pudesse criar uma fila, e o sistema fizesse sozinho, pena não poder instalar o nodejs no servidor.
Sobre redimensionar com css, é o que o ESerra disse, tem imagem que chega a dar 20Mb =)
Vou deixar do jeito que eu disse, mas se alguém tiver alguma ideia para fazer o sistema enfileirar esses processamentos, seria de grande ajuda eu acho
>
Imagina uma galeria de imagens com 10 itens cada um com 15 mb...
Agora saquei rsrs
Vivendo e aprendendo!
Cara, pensando no que o ESerra disse ai e quais seriam as soluçoes mais viaveis, eu dei uma pesquisada sobre o assunto e achei uma classe bem interessante. Fiz alguns testes e realmente é bem mais eficaz que usar o css, pra redimensionar.
Aqui está:
<?php
// recebendo a url da imagem
$filename = $_GET['img'];
$percent = 0.10;
// Cabeçalho que ira definir a saida da pagina
header('Content-type: image/jpeg');
// pegando as dimensoes reais da imagem, largura e altura
list($width, $height) = getimagesize($filename);
//setando a largura da miniatura
$new_width = 120;
//setando a altura da miniatura
$new_height = 100;
//gerando a a miniatura da imagem
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
//o 3º argumento é a qualidade da imagem de 0 a 100
imagejpeg($image_p, null, 50);
imagedestroy($image_p);
?>
encontrei sobre essa classe nesse site aqui
http://clares.wordpress.com/2008/02/13/gerando-miniaturas-de-imagens-c-php/
Fiz uns testes com umas imagens bem pesadas, e nao sobrecarregou tanto.
http://otaviomartins.com/thumbs/
Enfim...boa sorte rsrs
Erick, valeu pela força
Essas funções que você mandou, são da extensão GD [http://php.net/manual/pt_BR/book.image.php]. Ela não é uma classe por que a extensão ainda não foi reconstruída em classe (reza a lenda que já foi portada para classe no PHP 6). Enfim, são esses métodos mesmo que estou utilizando. Se você gerar 100 thumbs de 5000x3800 em 5 minutos, em um servidor compartilhado da locaweb ou uol (onde eles configuram porcentagem de processamento e essas coisas) ela fica bem pesada. Tanto que na nossa maquina de desenvolvimento, desenvolvemos toda a solução sem pensar nessa preocupação, mas quando jogamos para produção, vimos o problema
Abraços
Nâo adianta nada executar isso em C, pois o que demora mesmo é o upload da imagem.
Infelizmente, não há muito o que fazer, o único jeito seria redimensionar a imagem antes de enviar.
Acredito que possa ser feito com Action Script/Flex, mas não tenho certeza, pois não conheço essas linguagens.