Hola, tengo una función que redimensiona la imagen que el usuario suba a un tamaño estipulado, el caso es que he hecho una galería para ver las fotos del user y me ha creado la necesidad de tener la imagen en tamaño thumbnail (o un tamaño parecido) y a un tamaño grande como 700x600. Para ello necesito una función que al redimensionar la imagen lo haga en dos tamaños y lo guarde con dos rutas distintas claro. Mi función para redimensionar la imagen que uso actualmente es esta y he intentado repetir el código con gracia pero me da errores.
Código PHP:
<?php
include('config.php');
$correouser=$ifilter->process($_SESSION['correo']);
?>
<?php
if(isset($_SESSION['correo'])){
$conexion=conectar();
$comprobacion = mysql_query("SELECT * FROM registrados WHERE correo='".mysql_real_escape_string($correouser)."'",$conexion) or die ("Query Fallo".mysql_error());
if( mysql_num_rows($comprobacion) ) {
$row = mysql_fetch_array($comprobacion);
$nombresesion = $row["nombre"];
$apellidossesion = $row["apellidos"];
$idsesion = $row["id"];
}
?>
<div id="menu" class="menu" >
<input type="button" class="bmenu" onclick="location.href='miperfil.php'" value="Vipefy" />
<input type="button" class="bmenu" onclick="location.href='amigos.php'" value=" Mis amigos" />
<input type="button" class="bmenu" onclick="location.href='destruir.php'" value="Desconexión" />
<input type="button" class="bmenu" onclick="location.href='mensajes.php'" value="Mensajes" />
<input type="button" class="bnombre" value="<?php echo $nombresesion." ".$apellidossesion ?>" />
<input type="button" class="bmenuamis" onclick="location.href='newfriends.php'" value="Encontrar amistades" />
</div>
<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = $idsesion;
if ($archivo != "") {
// guardamos el archivo a la carpeta imagenes
$destino ='imagenes/'.$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "";
$query = "INSERT INTO imagenes (usuario, ruta) ";
$query.="VALUES ('".mysql_real_escape_string($idsesion)."' , '".mysql_real_escape_string($destino)."') ";
$resultado = mysql_query($query, $conexion) or die(mysql_error());
$result = mysql_query("SELECT * FROM imagenes WHERE usuario='".mysql_real_escape_string($idsesion)."'", $conexion);
$row = mysql_fetch_array($result);
$ruta= $row["ruta"];
echo "<br><img src='".$ruta."' title='imagen'>";
//Creamos una variable imagen a partir de la imagen original
$img_original = imagecreatefromjpeg($ruta);
//Se define el maximo ancho o alto que tendra la imagen final
$max_ancho = 300;
$max_alto = 300;
//Ancho y alto de la imagen original
list($ancho,$alto)=getimagesize($ruta);
//Se calcula ancho y alto de la imagen final
$x_ratio = $max_ancho / $ancho;
$y_ratio = $max_alto / $alto;
//Si el ancho y el alto de la imagen no superan los maximos,
//ancho final y alto final son los que tiene actualmente
if( ($ancho <= $max_ancho) && ($alto <= $max_alto) ){//Si ancho
$ancho_final = $ancho;
$alto_final = $alto;
}
/*
* si proporcion horizontal*alto mayor que el alto maximo,
* alto final es alto por la proporcion horizontal
* es decir, le quitamos al alto, la misma proporcion que
* le quitamos al alto
*
*/
elseif (($x_ratio * $alto) < $max_alto){
$alto_final = ceil($x_ratio * $alto);
$ancho_final = $max_ancho;
}
/*
* Igual que antes pero a la inversa
*/
else{
$ancho_final = ceil($y_ratio * $ancho);
$alto_final = $max_alto;
}
//Creamos una imagen en blanco de tamaño $ancho_final por $alto_final .
$tmp=imagecreatetruecolor($ancho_final,$alto_final);
//Copiamos $img_original sobre la imagen que acabamos de crear en blanco ($tmp)
imagecopyresampled($tmp,$img_original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
//Se destruye variable $img_original para liberar memoria
imagedestroy($img_original);
//Definimos la calidad de la imagen final
$calidad=95;
//Se crea la imagen final en el directorio indicado
?>
<br/><br/>Así es como se verá la imágen en tu página de perfil.
<?php
imagejpeg($tmp,'imagenes/'.$prefijo."_".$archivo,$calidad);
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
?>
He estado buscando en google pero no encuentro lo que requiero, a ver si me podéis ayudar, muchas gracias!