Foros del Web » Programando para Internet » PHP »

Problema solucionado que acarrea otro: redimensionar imágenes

Estas en el tema de Problema solucionado que acarrea otro: redimensionar imágenes en el foro de PHP en Foros del Web. Hola a todos. Comencé un post para saber sobre el tema de subir imágenes y redimensionarlas. Ya conseguí lo siguiente: - desde una página se ...
  #1 (permalink)  
Antiguo 23/01/2011, 13:51
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Problema solucionado que acarrea otro: redimensionar imágenes

Hola a todos.

Comencé un post para saber sobre el tema de subir imágenes y redimensionarlas.

Ya conseguí lo siguiente:

- desde una página se sube la imagen con un formulario ("formulario.php").

- desde otra página, la redimensiono ("redimensionar.php").

Hasta aquí bién salvo dos cosillas:

- ¿cómo puedo hacer para que desde "formulario.php", cuando se suba la imagen, en vez de mostrar el típico aviso de "Registro completado" (por ejemplo), me abra directamente "redimensionar.php"?

- Y la segunda cosilla: en "redimensionar.php" tengo para que coja la id de "formulario.php" y el siguiente código para que me redimensione la imagen. El problema está en que, cuando abro "redimensionar.php" no modifica la imagen directamente, sino que si se recarga la página si lo hace... alguna solución?

<?php
//CONECTANDO CON LA BASE DE DATOS
require_once("../incluye/config.php");
require_once("../incluye/funciones.php");
//CONECTAR A LA BASE DE DATOS
$cnx = conectar ();

$sql = "SELECT * FROM fotos WHERE fotosid=".$_GET['fotosid'];
$res= mysql_query($sql) or die (mysql_error());

if( mysql_num_rows($res) >0){
while ($fila = mysql_fetch_array($res)) {

$tipoimagen = GetImageSize($fila[imgfotos]);

//Cargo en memoria la imagen que quiero redimensionar
if($tipoimagen[2]==1){$imagen_original = @imagecreatefromgif($fila[imgfotos]);}
if($tipoimagen[2]==2){$imagen_original = @imagecreatefromjpeg($fila[imgfotos]);}
if($tipoimagen[2]==3){$imagen_original = @imagecreatefrompng($fila[imgfotos]);}

//Obtengo el ancho de la imagen quecargue
$ancho_original = imagesx($imagen_original);

//Obtengo el alto de la imagen que cargue
$alto_original = imagesy($imagen_original);

//SI QUEREMOS UN ANCHO FINAL FIJO, calculamos el ALTO de forma proporcionada
$ancho_final = 150;

//Ancho final en pixeles
$alto_final = ($ancho_final / $ancho_original) * $alto_original;

//SI CONOCEMOS UN ALTO FINAL FIJO, calculamos el ANCHO de forma proporcionada

//Para usar este caso, comentar las dos lineas anteriores, y descomentar las dos siguientes a este comentario

/*$alto_final = 250; //Alto final en pixeles
$ancho_final = ($alto_final / $alto_original) * $ancho_original;*/

//Creo una imagen vacia, con el alto y el ancho que tendrá la imagen redimensionada
$imagen_redimensionada = imagecreatetruecolor($ancho_final, $alto_final);

//Copio la imagen original con las nuevas dimensiones a la imagen en blanco que creamos en la linea anterior
imagecopyresampled($imagen_redimensionada, $imagen_original, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho_original, $alto_original);

//Guardo la imagen ya redimensionada


if($tipoimagen[2]==1){imagegif($imagen_redimensionada, $fila[imgfotos]);}
if($tipoimagen[2]==2){imagejpeg($imagen_redimensionada, $fila[imgfotos]);}
if($tipoimagen[2]==3){imagepng($imagen_redimensionada, $fila[imgfotos]); }

//Libero recursos, destruyendo las imágenes que estaban en memoria
imagedestroy($imagen_original);

imagedestroy($imagen_redimensionada);

}
}else{
echo "<tr>
<td class='texto_paginas'>No se obtuvieron resultados</td>
</tr>\n";
}
mysql_close($cnx);
?>

Gracias por vuestra paciencia y un saludo:

Javy
  #2 (permalink)  
Antiguo 24/01/2011, 05:38
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Respuesta: Problema solucionado que acarrea otro: redimensionar imágenes

Hola a todos.

He conseguido refrescar la página usando esto:

echo "<META HTTP-EQUIV='refresh' CONTENT='1; URL=$PHP_SELF'>";

pero ahora no sé como pararla.

Creo que no es una buena solución, pero...

¿Alguna ayuda, por favor?

Etiquetas: redimensionar, solucionado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:59.