Ir para conteúdo

Arquivado

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

Wilker

bibliotecar melhor pra dar resize

Recommended Posts

e ae galera, tipo, eh o seguinte, alguem ai conhece alguma biblioteca grafica pra PHP q faca um resize mais legal q o GD? pq o resize do GD (imagecopyresampled) dexa a imagem toca distorcida (mesmo qdo eh pra reduzir...)eu queria saber c alguem conhece uma biblioteca que consiga reduzir imagem com uma qualidade de Photoshop e etc :Palguem ai conhece alguma?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também depende de como você tá fazendo pra redimensionar a imagem. Eu tenho uma galeria na qual usei o GD, o código pra redimensionar foi esse aqui:

 

<?php//Recupera as dimensões originais da imagemlist($largura, $altura) = getimagesize($imagem);//Verifica alguma dimensão ultrapassa 480px//Você pode especificar a dimensão que quiserif ($largura > 480 or $altura > 480) {   $img = ImageCreateFromJPEG($nome_final);   //Redimensiona a imagem seguindo a proporção original   $scale = min((480/$largura), (480/$altura));   $new_largura = floor($scale*$largura);   $new_altura = floor($scale*$altura);   $tmp = imagecreatetruecolor($new_largura, $new_altura);   ImageCopyResampled($tmp, $img, 0, 0, 0, 0, $new_largura, $new_altura, $largura, $altura);   //Salva a imagem com qualidade 90   imageJpeg($tmp, "pasta/para/a/" . $imagem, 90);   //Libera a memória utilizada pela imagem   ImageDestroy($img);   ImageDestroy($tmp);}?>

Esse Script funciona bem, mas se você quiser outra biblioteca, procure por Image Magik, é muito boa. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

...resize do GD (imagecopyresampled) dexa a imagem toca distorcida (mesmo qdo eh pra reduzir...)

E ai beleza, olha só se você utilizar proporções corretas pra redimensionar a imagem dificilmente ela irá ficar distorcida... Pra fazer o resize existe a função ImageCopyResized.. Acho funciona melhor pra isso...Da uma olhada neste link, é bem interessante:http://www.phpbrasil.com/articles/article.php/id/204

Compartilhar este post


Link para o post
Compartilhar em outros sites

n eh problema de distorcer a imagem exatamente... o problema eh q o resample nao fica bom mesmo... fica mtos quadrados, compara com um resample do photoshop, no photoshop ele tipo "suavisa" o resize, deixando uma qualidade de imagem mto melhor, foi falando disso q eu me referi :)eu vo da uma olhada no Image Magik, vlw ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem sabe me dizer como eu faço pra jogar isso no banco de dados?Eu estou testando cfe. abaixo e nao dá certo. Ele grava no banco, mas nao joga no diretórioSe alguem puder me ajudar, já faz dias q estou tentando fazer issoMeu código

$erro='';										if(isset($_FILES['arquivo']) && $_FILES['arquivo']==""){										$erro.="Voce deve escolher uma foto do seu computador";										}else{										$imagem=$_FILES['arquivo'];										}										if($imagem){										$dir="fotos2";										if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $imagem["type"])){										$erro.= "Arquivo em formato inválido só e´aceito jpg, jpeg, bmp, gif ou png. Envie outro arquivo";										}else{										preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $imagem['name'], $exten);																				$new_imagem="fotos2/".md5(uniqid(time())).".".$exten[1];										//Recupera as dimensões originais da imagem																														list($largura, $altura) = getimagesize($new_imagem);																				//Verifica alguma dimensão ultrapassa 480px										//Você pode especificar a dimensão que quiser										if ($largura > 480 or $altura > 480) {										   $img = ImageCreateFromJPEG($nome_final);																				   //Redimensiona a imagem seguindo a proporção original										   $scale = min((480/$largura), (480/$altura));																				   $new_largura = floor($scale*$largura);										   $new_altura = floor($scale*$altura);																				   $tmp = imagecreatetruecolor($new_largura, $new_altura);										   ImageCopyResampled($tmp, $img, 0, 0, 0, 0, $new_largura, $new_altura, $largura, $altura);																				   //Salva a imagem com qualidade 90										   imageJpeg($tmp, "fotos2/" . $imagem, 90);																				   //Libera a memória utilizada pela imagem										   ImageDestroy($img);										   ImageDestroy($tmp);										}										}										if($erro!=""){										echo $erro;										exit;										}else{										$sql = mysql_query("INSERT INTO tb_fotos(categ_foto,foto,legenda) VALUES ('$categ_produto1','".$new_imagem."','$legenda')");										$fil = move_uploaded_file($imagem["tmp_name"],$new_imagem);										if($fil==true){										echo"Enviado com sucesso";										}else{										echo"Erro ao enviar a imagem";										}										}										} 										}/*fecha acao= cadastrar*/

Também depende de como você tá fazendo pra redimensionar a imagem. Eu tenho uma galeria na qual usei o GD, o código pra redimensionar foi esse aqui:

<?php//Recupera as dimensões originais da imagemlist($largura, $altura) = getimagesize($imagem);//Verifica alguma dimensão ultrapassa 480px//Você pode especificar a dimensão que quiserif ($largura > 480 or $altura > 480) {   $img = ImageCreateFromJPEG($nome_final);   //Redimensiona a imagem seguindo a proporção original   $scale = min((480/$largura), (480/$altura));   $new_largura = floor($scale*$largura);   $new_altura = floor($scale*$altura);   $tmp = imagecreatetruecolor($new_largura, $new_altura);   ImageCopyResampled($tmp, $img, 0, 0, 0, 0, $new_largura, $new_altura, $largura, $altura);   //Salva a imagem com qualidade 90   imageJpeg($tmp, "pasta/para/a/" . $imagem, 90);   //Libera a memória utilizada pela imagem   ImageDestroy($img);   ImageDestroy($tmp);}?>
Esse Script funciona bem, mas se você quiser outra biblioteca, procure por Image Magik, é muito boa. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.