Foros del Web » Programando para Internet » PHP »

funcion para redimensionar imágenes

Estas en el tema de funcion para redimensionar imágenes en el foro de PHP en Foros del Web. Hola, tengo un problema a la hora de subir al servidor varias imágenes y redimensionarlas a la vez: El formulario para subir funciona bien, tengo ...
  #1 (permalink)  
Antiguo 11/07/2015, 12:44
 
Fecha de Ingreso: mayo-2013
Mensajes: 11
Antigüedad: 10 años, 11 meses
Puntos: 0
funcion para redimensionar imágenes

Hola, tengo un problema a la hora de subir al servidor varias imágenes y redimensionarlas a la vez:

El formulario para subir funciona bien, tengo un botón que me permite hacer clic y aparecer otro botón para seleccionar el archivo, puedo seleccionar hasta 15 a la vez, se suben perfectamente si no redimensiono.
Este es el código:
<?php
if (isset ($_FILES["archivo"])) {
$tot = count($_FILES['archivo']['name']);
for ($i = 0; $i < $tot; $i++){

$tmp_name = $_FILES['archivo']['tmp_name'][$i];
$name = $_FILES['archivo']['name'][$i];
$tamanio=$_FILES['archivo']['size'][$i];
$nombre_archivo =$id_unico.$i.".jpg";//nombre del archivo time+.jpg

$id_unico=time();
if($tamanio > 50000000)
{
echo " EL ARCHIVO ES DEMASIADO GRANDE, NO SE PUEDE SUBIR.";
}else{
if(move_uploaded_file($tmp_name,"../".$nombreDirectorio.$nombre_archivo))
{
echo " SUBIDO CORRECTAMENTE: ";
}else{
echo " NO SE HA PODIDO SUBIR.";
}
$r_db=$nombreDirectorio.$nombre_archivo;
$resultado=mysql_query("INSERT INTO $tabla SET foto='$r_db';", $conexion)or die("No se ha grabado el archivo fotografía");

# ruta de la imagen a redimensionar
$imagen= "../".$r_db;
# ruta de la imagen final
$imagen_final="../".$r_db;
$ancho_nuevo=800;
$alto_nuevo=600;


include "fmec.php";

}}}

?>

El problema es el include que he hecho, Sólo redimensiona la primera imagen y me salta este error:
Fatal error: Cannot redeclare redim() (previously declared in C:\xampp\htdocs\tallerrodri\admin\fmec.php:4) in C:\xampp\htdocs\tallerrodri\admin\fmec.php on line 55

el archivo fmec.php tiene este código:
<?php

redim ($imagen,$imagen_final,$ancho_nuevo,$alto_nuevo);
function redim($ruta,$ruta2,$ancho,$alto)
{
# se obtene la dimension y tipo de imagen
$datos=getimagesize ($ruta);

$ancho_orig = $datos[0]; # Anchura de la imagen original
$alto_orig = $datos[1]; # Altura de la imagen original
$tipo = $datos[2];
if ($tipo==2){ # JPG
if (function_exists("imagecreatefromjpeg"))
$img = imagecreatefromjpeg($ruta);
else
return false;
}
# Se calculan las nuevas dimensiones de la imagen
if ($ancho_orig>$alto_orig)
{
$ancho_dest=$ancho;
$alto_dest=($ancho_dest/$ancho_orig)*$alto_orig;
}
else
{
$alto_dest=$alto;
$ancho_dest=($alto_dest/$alto_orig)*$ancho_orig;
}
//imagecreatetruecolor;
$img2=@imagecreatetruecolor($ancho_dest,$alto_dest ) or
$img2=imagecreate($ancho_dest,$alto_dest);

// Redimensionar
// imagecopyresampled, solo estan en G.D. 2.0.1 con PHP 4.0.6+
@imagecopyresampled($img2,$img,0,0,0,0,$ancho_dest ,$alto_dest,$ancho_orig,$alto_orig) or imagecopyresized($img2,$img,0,0,0,0,$ancho_dest,$a lto_dest,$ancho_orig,$alto_orig);

// Crear fichero nuevo, según extensión.
$im = $img2;
$margen_dcho = 10;
$margen_inf = 10;


if ($tipo==2) // JPG
if (function_exists("imagejpeg"))

imagejpeg($img2, $ruta2);

else
return false;
return true;
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

}

?>




Mi pregunta es:
puedo hacer que redim tome un valor distinto al recorrer todas las imágenes seleccionadas?
el tema de funciones estoy un poco verde. he intentado dar un valor a la función según la variable $i del total de archivos subidos creo que es un disparate.

$i.redim ($imagen,$imagen_final,$ancho_nuevo,$alto_nuevo); esto es lo que busco pero que no de error
function $iredim($ruta,$ruta2,$ancho,$alto) esto es lo que busco pero que no de error

espero que alguien me ayude.
Gracias.
  #2 (permalink)  
Antiguo 11/07/2015, 13:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funcion para redimensionar imágenes

Tu error esta en incluir dicho script dentro del bucle, de esa forma le incluyes muchas veces y de ahí el error.

Incluye dicho script sólo una vez, al inicio de todo el script y nada más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/07/2015, 06:55
 
Fecha de Ingreso: mayo-2013
Mensajes: 11
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: funcion para redimensionar imágenes

Cita:
Iniciado por pateketrueke Ver Mensaje
Tu error esta en incluir dicho script dentro del bucle, de esa forma le incluyes muchas veces y de ahí el error.

Incluye dicho script sólo una vez, al inicio de todo el script y nada más.
Hola, disculpa por no responder antes, estuve fuera...
he probado a poner el archivo fmec.php fuera del bucle, y no da error, puedo subir al servidor varias imágenes a la vez, pero sólo redimensiona una....
  #4 (permalink)  
Antiguo 17/07/2015, 09:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funcion para redimensionar imágenes

Cita:
pero sólo redimensiona una....
Pues será la forma en que lo usas, ¿realmente cómo podemos adivinar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 20/07/2015, 07:25
 
Fecha de Ingreso: mayo-2013
Mensajes: 11
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: funcion para redimensionar imágenes

Cita:
Iniciado por pateketrueke Ver Mensaje
Tu error esta en incluir dicho script dentro del bucle, de esa forma le incluyes muchas veces y de ahí el error.

Incluye dicho script sólo una vez, al inicio de todo el script y nada más.
Hola, disculpa por no responder antes, estuve fuera...
he probado a poner el archivo fmec.php fuera del bucle, y no da error, puedo subir al servidor varias imágenes a la vez, pero sólo redimensiona una....


Hola... sinceramente no tengo ni idea de cómo adivinar, por eso pedí ayuda. pero bueno, gracias por responder... seguiré intentando y cuando lo tenga lo subiré aquí por si le sirve de algo a alguien.
Gracias de nuevo.. Un saludo.

Etiquetas: formulario, funcion, redimensionar, sql, tabla, variable
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 02:02.