como estas, antes que nada muchas gracias por la info.
bueno, te comento que no logro hacer que la funcion redimensione la imagen, por ejemplo a 200px x 200px, lo que hice (supuse que debia hacer eso) fue modificar en la funcion que me pasaste los siguientes parametros:
donde dice: $nombre_archivo=$_FILES['imagen']['name'];
lo cambie por: $nombre_archivo=$_FILES['file']['name'];//ya que 'file' es el nombre del campo que carga el archivo en el formulario
y donde dice:if($tam[0] > 500 OR $tam[1] > 500) {
cambiartam($directorio, $directorio, 500, 500);
lo cambie por: if($tam[0] > 200 OR $tam[1] > 200) {
cambiartam($directorio, $directorio, 200, 200);//que es el tamaño en pixeles al que quiero redimensionar la imagen (cualquiera sea) que me envia el usuario mediante el formulario.
pero no logro hacerlo.
si guarda bien la ruta a la imagen en la db, pero cuando la visualizo en el navegador no me sale redimensionada
porque puede ser? que estoy haciendo mal?
muchas gracias
Cita:
Iniciado por JoseAlejandro_Realza Para hacer la redimension de las imagenes es muy sencillo, solo necesitas aplicarle una funcion pasandole los parametros necesarios y ya. Te explicare algo sencillo, la funcion solo buscara en tu directorio la imagen segun la ruta que le pases, la copiara y creara una nueva con los tamaños que le asignes. La funcion seria una como esta:
Código PHP:
<?php
function cambiartam($nombre,$archivo,$ancho,$alto)
{
$verificar = explode('.',$nombre);
$tmp = $verificar[1];
if (preg_match('/jpg|jpeg|JPG/',$tmp))
{
$imagen=imagecreatefromjpeg($nombre);
}
if (preg_match('/png|PNG/',$tmp))
{
$imagen=imagecreatefrompng($nombre);
}
if (preg_match('/gif|GIF/',$tmp))
{
$imagen=imagecreatefromgif($nombre);
}
$x=imageSX($imagen);
$y=imageSY($imagen);
if ($x > $y)
{
$w=$ancho;
$h=$y*($alto/$x);
}
if ($x < $y)
{
$w=$x*($ancho/$y);
$h=$alto;
}
if ($x == $y)
{
$w=$ancho;
$h=$alto;
}
$destino=ImageCreateTrueColor($w,$h);
echo imagecopyresampled($destino,$imagen,0,0,0,0,$w,$h,$x,$y);
if (preg_match("/png/",$tmp))
{
imagepng($destino,$archivo);
}
if (preg_match("/gif/",$tmp))
{
imagegif($destino,$archivo);
}
else
{
imagejpeg($destino,$archivo);
}
imagedestroy($destino);
echo imagedestroy($imagen);
}// fin de la función
/*Ahora solo te faltaría aplicarla, lo cual es muy sencillo. Hare un ejemplo con el código que tenias arriba.*/
$nombre_archivo=$_FILES['imagen']['name'];
$tam=getimagesize($nombre_archivo);
if($tam[0] > 500 OR $tam[1] > 500) {
cambiartam($directorio, $directorio, 500, 500);
}
?>
Cualquier duda vuelves a preguntas. Saludos