Cita:
Iniciado por gogupe Cual es el script que has usado?
Hay algunos por ahí que te deja poner la calidad. He visto que van desde 1 a 10, de menor a mayor calidad.
este es script que estoy usando, lo arme de varios ejemplos que encontré por aquí y por aya en internet
Código PHP:
function crear_thumb($img, $tname){
// Obtencion de formatos de imagen
if(stristr(strtolower($img),"jpg") or stristr(strtolower($img),"jpeg")){
$img = imagecreatefromjpeg($img);
$tipo = "jpg";
}
if(stristr(strtolower($img),"png")){
$img = imagecreatefrompng($img);
$tipo = "png";
}
if(stristr(strtolower($img),"gif")){
$img = imagecreatefromgif($img);
$tipo = "gif";
}
// Obtenemos ancho y alto de la imagen
$ancho = imagesx($img);
$alto = imagesy($img);
$return = array($ancho, $alto);
//si el alto de la img es mayor al ancho
if($ancho < $alto){
$n_alto = 154;
$redu = ($n_alto * 100) / $alto;
$n_ancho = round($ancho * $redu / 100);
$thumb = imagecreatetruecolor($n_ancho,$n_alto);
if(!imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto)){echo "cpy <br/>"; }
switch($tipo){
case "jpg":
$img = imagejpeg($img, $tname, 100);
break;
case "png":
$img = imagepng($img, $tname);
break;
case "gif":
$img = imagegif($img, $tname);
break;
}
}else{
$n_ancho = 142;
$redu = ($n_ancho * 100) / $ancho;
$n_alto = round($alto * $redu / 100);
$thumb = imagecreatetruecolor($n_ancho,$n_alto);
imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto);
switch($tipo){
case "jpg":
imagejpeg($thumb, $tname, 100);
imagecreatefromjpeg($tname);
case "png":
imagepng($thumb, $tname);
$img = imagecreatefrompng($tname);
case "gif":
imagegif($thumb, $tname);
$img = imagecreatefromgif($tname);
}
}
imagedestroy($thumb);
$return[] = $n_ancho;
$return[] = $n_alto;
return $return;
}