Estoy haciendo un pequeño CMS que incluye subir fotos para una galeria de imagenes. Leyendo varios tutoriales aquí y allá arme un script para redimensionar o recortar las imagenes segun sea necesario, peor por algun motivo no me funciona.
Este es el script:
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);
echo $alto . "<br/>" .$ancho;
if(($ancho/$alto <= 1.39) && ($alto/$ancho <=0.8) || ($ancho/$alto <= 0.8) && ($alto/$ancho <=1.88)){
$n_alto = 202;
$redu = ($n_alto * 100) / $alto;
$n_ancho = round($ancho * $redu / 100);
$thumb = imagecreatetruecolor($n_ancho,$n_alto);
var_dump($thumb);
var_dump($img);
if(!imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto)){echo "cpy <br/>"; }
switch($tipo){
case "jpg":echo " JPEGLE ";
$img = imagecreatefromjpeg($tname);
case "png":
$img = imagecreatefrompng($tname);
case "gif":
$img = imagecreatefromgif($tname);
}
return array($n_ancho, $n_alto);
echo "hola";
}else{
$n_alto = 202;
$redu = ($n_alto * 100) / $alto;
$n_ancho = round($ancho * $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":
$img = imagecreatefromjpeg($tname);
case "png":
$img = imagecreatefrompng($tname);
case "gif":
$img = imagecreatefromgif($tname);
}
$ancho = imagesx($img);
$thumb = imagecreatetruecolor(244, 204);
if(imagecopyresampled($thumb, $img, 0, 0, abs(($ancho - 244) / 2),0, 244, 204, 244, 204)){
echo "aja";
switch($tipo){
case "jpg":
imagejpeg($thumb, $tname);
case "png":
imagepng($thumb, $tname);
case "gif":
imagegif($thumb, $tname);
}
}
return array(244, 204);
}
imagedestroy($thumb);
}