Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
É o seguinte... criei um sistema de wallpapers, as fotos do wallpapers padrão estão no formato 1024x768, mas no sistema quero que essas fotos também estejam em outros formatos que listei (que são os mais usados pelos usuários)... enfim, o sistema que "cria" essas imagens nas novas resoluções consiste em pegar a url do banco de dados da coluna ['imagem'] e pelo loop ir "criando" novas imagens a partir dessas que estão no meu site:
<?php
$resolucao = "1920x1080";
$pasta = ''.$resolucao.'/';
include '../conecta.php';
//FUNCAO PARA AUMENTAR O TEMPO DE EXECUÇÃO DA PÁGINA
ini_set('max_execution_time','100000');
$qry = mysql_query("SELECT * FROM wallpapers ORDER BY id DESC");
while($array = mysql_fetch_array($qry)){
$id = $array['id'];
$imagem = $array['imagem'];
$thumb = $array['thumb'];
if(file_exists($imagem)){
//FAZ NADA POIS A IMAGEM EXISTE 'NAO FUNCIONOU'
}
else{
//A IMAGEM NÃO EXISTE, CRIA IMAGEM
$filename = "http://............../wallpapers/$imagem";
ini_set("memory_limit", "16M");
header('Content-type: image/jpeg');
$source = imagecreatefromjpeg($filename);
switch($resolucao){
case '1280x800':
$novaLargura = 1280;
$novaAltura = 800;
break;
case '1440x900':
$novaLargura = 1440;
$novaAltura = 900;
break;
case '1280x1024':
$novaLargura = 1280;
$novaAltura = 1024;
break;
case '1366x768':
$novaLargura = 1366;
$novaAltura = 768;
break;
case '1920x1080':
$novaLargura = 1920;
$novaAltura = 1080;
break;
}
$larguraOriginal = imagesx($source);
$alguraOriginal = imagesy($source);
$larguraCalc = $larguraOriginal / $novaLargura;
$alturaCalc = $alguraOriginal / $novaAltura;
$min = min($larguraCalc, $alturaCalc);
$xt = $min * $novaLargura;
$x1 = ($larguraOriginal - $xt) / 2;
$x2 = $larguraOriginal - $x1;
$yt = $min * $novaAltura;
$y1 = ($alguraOriginal - $yt) / 2;
$y2 = $alguraOriginal - $y1;
$x1 = (int) $x1;
$x2 = (int) $x2;
$y1 = (int) $y1;
$y2 = (int) $y2;
$thumb = imagecreatetruecolor($novaLargura, $novaAltura);
imagecopyresampled($thumb, $source, 0, 0, $x1, $y1, $novaLargura, $novaAltura, $x2-$x1, $y2-$y1);
imagejpeg($thumb, $pasta. $imagem, 100);
}
}
?>
Só que como tenho muitas imagens (mais de 500), o sistema fica sobrecarregado e passa facilmente dos 30 segundos, para resolver isso coloquei a função não funcionou ini_set('max_execution_time','100000') mas mesmo assim não resolveu e está dando erro 500 (ou 503 esqueci) algo relativo à sobrecarga do servidor... enfim, o que está errado mesmo no script é que a função if(file_exists()) não está funcionando, testando ela sem usar com o script ela funciona, mas no script ela "passa reto" e continua processando e criando as imagens mesmo elas estando no servidor... e outra, será que é possível otimizar esse script? Já tentei colocar sleep(), time() pra não sobrecarregar mas nada funcionou... aguardo respostas atenciosamente, att
Carregando comentários...