Foros del Web » Programando para Internet » PHP »

Editar imagenes al momento de subirlas

Estas en el tema de Editar imagenes al momento de subirlas en el foro de PHP en Foros del Web. Hola foreros estoy haciendo para mi pagina una parte de albumes fotograficos y el problema es que hay personas que suben fotos tal cual las ...
  #1 (permalink)  
Antiguo 05/03/2009, 15:06
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Editar imagenes al momento de subirlas

Hola foreros estoy haciendo para mi pagina una parte de albumes fotograficos
y el problema es que hay personas que suben fotos tal cual las bajan de la
camara osea de 3 y 4 mb

Quisiera saber como se puede hacer para que al momento del upload de una
arregle la imagen dejandola mas o menos tipo vga sea horizontal o vertical
yo se sacar thumbnails pero ni idea como agarrar la imagen y subirla.

Ayuda por favor
  #2 (permalink)  
Antiguo 05/03/2009, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

Hola MaRcOs,

El proceso es el mismo que indicas, solo que en lugar de hacer un thumbnail lo haces del tamaño VGA, claro que para eso vas a tener que hacer que los usuarios suban la imagen, no puedes hacer mucho si no tienes la imagen en el servidor.

Saludos
  #3 (permalink)  
Antiguo 05/03/2009, 16:02
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

Mira lo que llebo pero no se como hacerlo funcionar
Código PHP:
<?php
//datos de conexion a mysql

if(!isset($_FILES[foto])){
echo
'
<form enctype="multipart/form-data" method="post" action="">
<input name="foto" type="file" size="35" /><br />
<input type="submit" name="button" id="button" value="subir" />
</form>'
;
}else{

$img imagecreatefromstring($_FILES[foto]);    
$picsize 20;
$new_w imagesx($img);
$new_h imagesy($img);
$aspect_ratio $new_h $new_w;
$new_w $picsize;
$new_h abs($new_w $aspect_ratio);
$dst_img ImageCreateTrueColor($new_w,$new_h);
$fotico imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));  
$fotico imagejpeg($dst_img,'',90);

$consulta_insertar "INSERT INTO albumes (imagen) VALUES ('$fotico')";
mysql_query($consulta_insertar,$conexion);
}
?>
  #4 (permalink)  
Antiguo 05/03/2009, 16:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

Que problema te da ese código? Por otro lado recuerda que no es correcto usar $_FILES[foto] es necesario usar las llaves: $_FILES['foto'].

Saludos
  #5 (permalink)  
Antiguo 05/03/2009, 22:06
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

este es el error q me bota

Código PHP:
Warningimagecreatefromstring() [function.imagecreatefromstring]: Empty string or invalid image in /home/portalar/public_html/prueba/index.php on line 13

Warning
imagesx(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 15

Warning
imagesy(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 16

Warning
Division by zero in /home/portalar/public_html/prueba/index.php on line 17

Warning
imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/portalar/public_html/prueba/index.php on line 20

Warning
imagesx(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 21

Warning
imagesy(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 21

Warning
imagecopyresampled(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 21

Warning
imagejpeg(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 22 
  #6 (permalink)  
Antiguo 06/03/2009, 08:25
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Editar imagenes al momento de subirlas

..::MaRcOs::..:

En este error ->
Cita:
Warning: imagecreatefromstring() [function.imagecreatefromstring]:
Empty string or invalid image in /home/portalar/public_html/prueba/index.php on line 13
Te esta diciendo que has enviado
un nombre no valido o una imagen que no
existe.
Es decir el codigo NOENCUENTRA La Imagen

Creo que es necesario que primero hagas la reduccion
de la imagen en local hasta asegurarte que tu codigo funciona
despues lo adaptas a cualquier pagina o codigos mas extensos.

Saludos
Franco
  #7 (permalink)  
Antiguo 06/03/2009, 08:51
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

bueno le he puesto $_FILES['foto']['tmp_name']
y ahome me dice que no reconoce el formato

Código PHP:
Warningimagecreatefromstring() [function.imagecreatefromstring]: Data is not in a recognized format 
  #8 (permalink)  
Antiguo 06/03/2009, 09:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

Haz un echo a $_FILES['foto']['tmp_name'], seguramente eso te va a imprimir la ruta.

imagecretefromstring necesita los datos binarios de la imagen no la ruta de la imagen, para eso esta imagecreatefrom(png|jpg|gif)

Saludos
  #9 (permalink)  
Antiguo 06/03/2009, 09:18
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

intente de esta otra forma y tampoco

Código PHP:
<?php
//datos de conexion a mysql

if(!isset($_FILES[foto])){
echo
'
<form enctype="multipart/form-data" method="post" action="">
<input name="foto" type="file" size="35" /><br />
<input type="submit" name="button" id="button" value="subir" />
</form>'
;
}else{

$binario_nombre_temporal=$_FILES['foto']['tmp_name'] ;
$binario_contenido addslashes(fread(fopen($binario_nombre_temporal"rb"), filesize($binario_nombre_temporal)));

$img imagecreatefromstring($binario_contenido);    
$picsize 20;
$new_w imagesx($img);
$new_h imagesy($img);
$aspect_ratio $new_h $new_w;
$new_w $picsize;
$new_h abs($new_w $aspect_ratio);
$dst_img ImageCreateTrueColor($new_w,$new_h);
$fotico imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));  
$fotico imagejpeg($dst_img,'',90);

$consulta_insertar "INSERT INTO albumes (imagen) VALUES ('$fotico')";
mysql_query($consulta_insertar,$conexion);
}
?>
  #10 (permalink)  
Antiguo 06/03/2009, 09:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

"y tampoco" sin ver mensajes de error es complicado ver porque falla.

Saludos
  #11 (permalink)  
Antiguo 06/03/2009, 09:20
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

los mensajes de error de la anterior son

Código PHP:
Warningimagecreatefromstring() [function.imagecreatefromstring]: gd-jpegJPEG library reports unrecoverable errorin /home/portalar/public_html/prueba/index.php on line 16

Warning
imagecreatefromstring() [function.imagecreatefromstring]: Passed data is not in 'JPEG' format in /home/portalar/public_html/prueba/index.php on line 16

Warning
imagecreatefromstring() [function.imagecreatefromstring]: Couldnt create GD Image Stream out of Data in /home/portalar/public_html/prueba/index.php on line 16

Warning
imagesx(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 18

Warning
imagesy(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 19

Warning
Division by zero in /home/portalar/public_html/prueba/index.php on line 20

Warning
imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in /home/portalar/public_html/prueba/index.php on line 23

Warning
imagesx(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 24

Warning
imagesy(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 24

Warning
imagecopyresampled(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 24

Warning
imagejpeg(): supplied argument is not a valid Image resource in /home/portalar/public_html/prueba/index.php on line 25 
  #12 (permalink)  
Antiguo 06/03/2009, 09:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

Cita:
JPEG library reports unrecoverable erro
Si ves el error esta en la libreria JPG, a lo mejor te estas acabando la memoria al usar una imagen tan grande de 4 MB, prueba incrementar el memory_limit de PHP, si estas usando imagenes de 4 MB, vas a tener que usar un memory_limit de unos 512 MB.

Saludos
  #13 (permalink)  
Antiguo 06/03/2009, 10:00
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

la imagen que estoy subiendo
solo pesa 32kb

alguien que me ayude???
  #14 (permalink)  
Antiguo 06/03/2009, 10:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

En ese caso la imagen parece tener un error y por eso no puede ser procesada por la libreria GD, abrela en tu gestor de imagenes como photoshop e intenta guardarla en otro formato.

Saludos
  #15 (permalink)  
Antiguo 06/03/2009, 10:08
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

pero es muy raro por que si la subo sin editar (sin GD)
sube normalmente y ya he probado con varias imagenes
gif, jpg, bmp y nada
  #16 (permalink)  
Antiguo 06/03/2009, 10:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Editar imagenes al momento de subirlas

Exacto el problema es la imagen no de PHP, al tratar de procesarla por el GD es donde te muestra el error por eso checa si la imagen tiene algun problema o es simplemente que GD no soporta ese tipo de JPG en especifico.

Saludos
  #17 (permalink)  
Antiguo 06/03/2009, 10:17
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: Editar imagenes al momento de subirlas

que la suban de 4mb (me canse)
  #18 (permalink)  
Antiguo 06/03/2009, 17:16
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Editar imagenes al momento de subirlas

..::MaRcOs::..:


Cita:
$binario_nombre_temporal=$_FILES['foto']['tmp_name'] ;
$binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal)));
$img = imagecreatefromstring($binario_contenido);
Observa que aqui simplemente has leido el archivo
subido QUE ESTA EN EL DIRECTORIO TEMPORAL pero
NO lo has movido hacia su ubicacion final; por lo anterior
el codigo de la imagen simplemente no tiene nada
que procesar, no lo encuentra, no esta en el
directorio donde esta el codigo para procesar la imagen.

Aqui (FAQ)hay multiples codigos de subida de archivos que son
altamente competitivos y excelentes.

Saludos
Franco
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 22:43.