Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Borel

Erro no código

Recommended Posts

Galera, criei um script que varre um diretório e vai criando as miniaturas com GD. Só que em algumas imagens que estão no formato retrato (em pé), o script costuma dar erro. Isso não acontece com todas as imagens umas são geradas corretamente e outras em tamanho errado. Tá aí o script

 

PHP

[*]

[*]################################################################################

########################

[*] ################  Varre o diretório criando as Miniaturas com GD ###################

[*] ################################################################################

########################

[*] $dir = opendir($dir_small);

[*] ## Tamanho da Minatura a ser gerada

[*]  $largura = 150;

[*] $altura = 113;

[*] while ($arquivo = readdir($dir)){

[*]  if($arquivo != '.' && $arquivo != '..' && $arquivo != 'thumb') {

[*] ## Cria o nome da Miniatura para ser salva na pasta Thumb

[*] $imagem_gerada = $dir_full.'/'.$arquivo;

[*]  

[*] ## Caminho completo das imagens em tamanho original

[*] $full = $dir_small.'/'.$arquivo;

[*]

[*] //CRIA UMA NOVA IMAGEM JPEG

[*] $imagem_original = ImageCreateFromJPEG($full);

[*]

[*] //LARGURA E ALTURA DA IMAGEM ORIGINAL

[*] $largura_imagem_original  =  ImagesX($imagem_original);

[*] $altura_imagem_original =  ImagesY($imagem_original);

[*]  

[*] ## VERIFICA SE A IMAGEM É RETRATO OU PAISAGEM

[*] if ($largura_imagem_original > $altura_imagem_original) {

[*]  // IMAGEM NO FORMATO PAISAGEM

[*]  $largura_miniatura = $largura;

[*]  $altura_miniatura = round(($altura_imagem_original * $largura_miniatura) / $largura_imagem_original);

[*] }

[*] else {

[*]  // IMAGEM NO FORMATO RETRATO

[*]  $largura_miniatura = $altura;

[*]  $altura_miniatura = round(($altura_imagem_original * $altura_miniatura) / $largura_imagem_original);

[*] }

[*]

[*] //CRIA O THUMBNAIL

[*] $img = ImageCreateTrueColor($largura_miniatura, $altura_miniatura);

[*]

[*] //COPIA A IMAGEM ORIGINAL PARA DENTRO

[*] ImageCopyResampled($img, $imagem_original, 0, 0, 0, 0, $largura_miniatura, $altura_miniatura, $largura_imagem_original, $altura_imagem_original);

[*]  

[*] //SALVA A IMAGEM

[*] ImageJPEG($img, $imagem_gerada, '95');

[*]  

[*] //LIBERA A MEMÓRIA

[*] ImageDestroy($imagem_original);

[*] ImageDestroy($img);

[*]

[*]  }

[*] }

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.