Borel 0 Denunciar post Postado Maio 16, 2005 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
TrymBeast 0 Denunciar post Postado Maio 16, 2005 Ajudava se você postasse o erro, mas tens que ter atenção que a função ImageCreateFromJPEG só funciona com jpegs. Compartilhar este post Link para o post Compartilhar em outros sites