Respuesta: Redimensionar imagenes con php He encontrado este código pero no consigo hacerlo funcionar. Es que como he comentado antes, me hago un lío con el php.
Código PHP:
Ver original<? function redimensionar_imagen($imagen, $nombre_imagen_asociada) { //indicamos el directorio donde se van a colgar las imágenes $directorio = 'logotipo/' ; //establecemos los límites de ancho y alto $nuevo_ancho = 600 ; $nuevo_alto = 600 ; //Recojo información de la imágen $alto = $info_imagen[1]; $ancho = $info_imagen[0]; $tipo_imagen = $info_imagen[2]; //Determino las nuevas medidas en función de los límites if($ancho > $nuevo_ancho OR $alto > $nuevo_alto) { if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho)) { $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ; } else { $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0); } } else //si la imagen es más pequeña que los límites la dejo igual. { $nuevo_alto = $alto; $nuevo_ancho = $ancho; } // dependiendo del tipo de imagen tengo que usar diferentes funciones switch ($tipo_imagen) { case 1: //si es gif … $imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto); //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 2: //si es jpeg … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 3: //si es png … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; } return true; //si todo ha ido bien devuelve true } ; //indicamos el directorio donde se van a colgar las imágenes $directorio = './' ; //establecemos los límites de ancho y alto $nuevo_ancho = 150 ; $nuevo_alto = 150 ; //Recojo información de la imágen $alto = $info_imagen[1]; $ancho = $info_imagen[0]; $tipo_imagen = $info_imagen[2]; //Determino las nuevas medidas en función de los límites if($ancho > $nuevo_ancho OR $alto > $nuevo_alto) { if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho)) { $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ; } else { $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0); } } else //si la imagen es más pequeña que los límites la dejo igual. { $nuevo_alto = $alto; $nuevo_ancho = $ancho; } // dependiendo del tipo de imagen tengo que usar diferentes funciones switch ($tipo_imagen) { case 1: //si es gif … $imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto); //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 2: //si es jpeg … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 3: //si es png … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; } return true; //si todo ha ido bien devuelve true ?> <? function redimensionar_imagen($imagen, $nombre_imagen_asociada) { //indicamos el directorio donde se van a colgar las imágenes $directorio = 'logotipo/' ; //establecemos los límites de ancho y alto $nuevo_ancho = 600 ; $nuevo_alto = 600 ; //Recojo información de la imágen $alto = $info_imagen[1]; $ancho = $info_imagen[0]; $tipo_imagen = $info_imagen[2]; //Determino las nuevas medidas en función de los límites if($ancho > $nuevo_ancho OR $alto > $nuevo_alto) { if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho)) { $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ; } else { $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0); } } else //si la imagen es más pequeña que los límites la dejo igual. { $nuevo_alto = $alto; $nuevo_ancho = $ancho; } // dependiendo del tipo de imagen tengo que usar diferentes funciones switch ($tipo_imagen) { case 1: //si es gif … $imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto); //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 2: //si es jpeg … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 3: //si es png … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; } return true; //si todo ha ido bien devuelve true } ; //indicamos el directorio donde se van a colgar las imágenes $directorio = './' ; //establecemos los límites de ancho y alto $nuevo_ancho = 150 ; $nuevo_alto = 150 ; //Recojo información de la imágen $alto = $info_imagen[1]; $ancho = $info_imagen[0]; $tipo_imagen = $info_imagen[2]; //Determino las nuevas medidas en función de los límites if($ancho > $nuevo_ancho OR $alto > $nuevo_alto) { if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho)) { $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ; } else { $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0); } } else //si la imagen es más pequeña que los límites la dejo igual. { $nuevo_alto = $alto; $nuevo_ancho = $ancho; } // dependiendo del tipo de imagen tengo que usar diferentes funciones switch ($tipo_imagen) { case 1: //si es gif … $imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto); //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 2: //si es jpeg … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; case 3: //si es png … //cambio de tamaño… imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; break; } return true; //si todo ha ido bien devuelve true ?>
¿Cómo lo tengo que llamar? Es decir, si tengo una imagen que se carga desde la base de datos, del campo de nombre logotipo:
Código PHP:
Ver original<img src="logotipo/<?php echo $row_plantilla['logotipo']; ?>" width="150" height="100" />
¿Qué tendría que cambiar para que funcione?
Gracias y disculpad por mi ignorancia. |