Alexandre, Esta lista não é para discussão de php, a não ser que seja algo relacionado ao Flex. Você está pedindo um algoritmo, além do mais em php....
Contudo, no bom espirito de ajudar, este é o algoritmo: larguraAtual; alturaAtual; novaLargura; novaAltura; se (larguraAtual >= alturaAtual) { razao = larguraAtual / alturaAtual; novaLargura = *largura máxima que você quer* novaAltura = novalLargura / razao; } Pronto. On 17 jul, 09:29, "Alexandre Bini" <[EMAIL PROTECTED]> wrote: > Olá, bom dia. > > Estou com um problema com a clase GD, para redimensionamento de imagens. > Eu tenho um script que funciona com um valor fixo, por exempo 100x100 e tal. > Mas eu preciso de algo um pouco diferente. > > Minha idéia é definir um tamanho máximo, por exemplo 500x500. Se a imagem > for maior que essa medida máxima, o script redimensiona proporcionalmente > até que as duas medidas (altura e largura) sejam menores que 500. > > Quando um dos lados for menor que 500, por exemplo largura 300, e altura = > 600, ele deve redimensionar proporcionamente para que a largura máxima seja > 300, e a algura menor que 500. É aqui que a coisa ta pegando... não estou > conseguindo fazer esse algorítmo... > > Alguem poderia me ajudar? > > O script que eu tenho é o seguinte: > > $dir = "../../imagens/noticias/".$_GET['id']; > $nome = $_GET['foto'].".jpg"; > //cria > move_uploaded_file($_FILES["Filedata"]['tmp_name'], $dir."/". $nome); > > ////IMAGEM GRANDE > //aqui a url da imagem que sera criada a miniatura > $imagem = $dir."/". $nome; > > $im = imagecreatefromjpeg($imagem); //criar uma amostra da imagem > original > $largurao = imagesx($im);// pegar a largura da amostra > $alturao = imagesy($im);// pegar a altura da amostra > > //miniatura > $altura = 350; > $largura = 300; > $nova = imagecreatetruecolor($largura,$altura);//criar uma imagem em > branco > > $largurad = ($largurao*$largura)/$alturao; > $alturad = ($alturao*$altura)/$largurao; > > if($largurao < $alturao){ > imagecopyresampled($nova,$im,0,0,0,0, $alturad, $altura, > $alturao, $largurao); > }else{ > imagecopyresampled($nova,$im,0,0,0,0, $largurad, $altura, > $largurao, $alturao); > } > > imagejpeg($nova, $imagem, 100);//cria imagem jpeg > > //libera a memoria usada na miniatura > imagedestroy($nova); > > -- > Alexandre Bini > 18 3641-4382 > msn: [EMAIL PROTECTED] > > -- > Alexandre Bini > 18 3641-4382 > msn: [EMAIL PROTECTED] --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para [EMAIL PROTECTED] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---