Foros del Web » Programando para Internet » PHP »

Problemas con imagecreatefromjpeg

Estas en el tema de Problemas con imagecreatefromjpeg en el foro de PHP en Foros del Web. Me he dado cuenta de que esta funcion me falla cuando intento cambiar imagenes mas grandes que 1MB... 919Kb lo acepta y cambia, pero 1,1Mb ...
  #1 (permalink)  
Antiguo 03/10/2012, 05:06
 
Fecha de Ingreso: octubre-2011
Ubicación: Valencia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Problemas con imagecreatefromjpeg

Me he dado cuenta de que esta funcion me falla cuando intento cambiar imagenes mas grandes que 1MB... 919Kb lo acepta y cambia, pero 1,1Mb ya no.
Al fallar se me queda la pantalla en blanco.
Tengo un if antes para que me acepte imagenes hasta 3,5Mb
Código:
$img_origen = imagecreatefromjpeg($uploadfile);
if(imagesx($img_origen)>500)
{$redimensionado=reduceimagenjpg($uploadfile);}
He probado quitando los ifs posteriores y sigue dandome el error asi que seguro que falla esa funcion

Espero me podais ayudar con el problema. Gracias!!!
  #2 (permalink)  
Antiguo 03/10/2012, 05:25
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 13 años
Puntos: 10
Respuesta: Problemas con imagecreatefromjpeg

el archivo de tu servidor cuanto acepta? he estao buscando por el foro y a otro usuario le paso lo mismo que ati y posiblemente la imagen sea mas grande de lo que es, es decir, este comprimida en 1,1mb y luego al hacer la funcion esta se descomprime y pesa mucho mas de lo que tu server acepta cual es el error que te sale ponlo en el foro si no no podremos ayudarte. un saludo.
  #3 (permalink)  
Antiguo 03/10/2012, 05:33
 
Fecha de Ingreso: octubre-2011
Ubicación: Valencia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Problemas con imagecreatefromjpeg

No me sale ningun error, directamente la pantalla se me queda en blanco...
la imagen la sube correctamente al servidor, el problema es al querer redimensionarla tengo que usar imagecreatefromjpeg y ahi da el problema
El server lo tengo configurado en: upload_max_filesize 16M

Código:
$max=3500000;
				$filesize = $_FILES['img1']['size'];
				$filename = trim($_FILES['img1']['name']);
				$filename= limpiar_caracteres_especiales($filename);
				
				$raza=sacaraza($animal, $raza);
			if($filesize < $max)
			{
				if($filesize > 0)
				{
						if((ereg(".jpg", $filename)) || (ereg(".gif", $filename)) || (ereg(".JPG", $filename))|| (ereg(".GIF", $filename)))
						{
							
							
							$sql="INSERT INTO animales(usuario, animal, raza, nombre, descripcion, foto, fecha) VALUES('$usuario', '$animal', '$raza', '$nombre', '$descripcion', '$filename', NOW())";
				
								$resultado=mysql_query($sql);
								
								$rs = mysql_query("SELECT @@identity AS id");
								if ($row = mysql_fetch_row($rs)) 
								{
								$id = trim($row[0]);
								}
								$carpeta= $id;
								$directorio="imagenes/$carpeta/";
								mkdir ($directorio);
								$uploaddir = "$directorio";
								$uploadfile = $uploaddir . $filename;
								
								
								
							if (move_uploaded_file($_FILES['img1']['tmp_name'], $uploadfile)) 
							{
								print("Archivo subido correctamente");
								
									if((ereg(".jpg", $filename))|| (ereg(".JPG", $filename)))
									{
										$img_origen = imagecreatefromjpeg($uploadfile);
										
										if(imagesx($img_origen)>500)
										{
											$redimensionado=reduceimagenjpg($uploadfile);
										}	
										if(imagesx($img_origen)>250)
										{
											$directorio="imagenes/$carpeta/medio/";
											mkdir ($directorio);
											$uploaddir = "$directorio";
											$nuevaruta = $uploaddir . $filename;
											$redimensionado1=mediajpg($uploadfile, $nuevaruta);
										}	
										else
										{
											$directorio="imagenes/$carpeta/medio/";
											mkdir ($directorio);
											$uploaddir = "$directorio";
											$nuevaruta = $uploaddir . $filename;
											move_uploaded_file($_FILES['img1']['tmp_name'], $uploadfile);
										}
										if(imagesx($img_origen)>160)
										{
											$directorio="imagenes/$carpeta/mini/";
											mkdir ($directorio);
											$uploaddir = "$directorio";
											$nuevaruta = $uploaddir . $filename;
											$redimensionado1=miniaturajpg($uploadfile, $nuevaruta);
										}
										else
										{
											$directorio="imagenes/$carpeta/mini/";
											mkdir ($directorio);
											$uploaddir = "$directorio";
											$nuevaruta = $uploaddir . $filename;
											move_uploaded_file($_FILES['img1']['tmp_name'], $uploadfile);
										}
									}
									else if((ereg(".gif", $filename))|| (ereg(".GIF", $filename)))
									{
										$img_origen = imagecreatefromgif($uploadfile);
										
										if(imagesx($img_origen)>500)
										{
										$redimensionado=reduceimagengif($uploadfile);
										}
										if(imagesx($img_origen)>250)
										{
											$directorio="imagenes/$carpeta/medio/";
											mkdir ($directorio);
											$uploaddir = "$directorio";
											$nuevaruta = $uploaddir . $filename;
											$redimensionado1=mediajpg($uploadfile, $nuevaruta);
										}	
										if(imagesx($img_origen)>160)
										{
											$directorio="imagenes/$carpeta/mini/";
											mkdir ($directorio);
											$uploaddir = "$directorio";
											$nuevaruta = $uploaddir . $filename;
											$redimensionado1=miniaturagif($uploadfile, $nuevaruta);
										}
									}
									
								if (!$resultado) 
								{
									die('Fallo en la insercion del animal en la Base de Datos: ' . mysql_error());
									?>
									<form action="index.php" method="post">
				
									<input type="submit" value="Volver" />
									</form>
									<?
								}
								else
								{
									echo "Enhorabuena, el animal ha sido correctamente añadido";
									?>
									<form action="index.php" method="post">
				
									<input type="submit" value="Volver" />
									</form>
									<?
								}
							} 
							else 
							{
								print("Error de conexi&oacute;n con el servidor.");
								?>
								<form action="index.php" method="post">
				
								<input type="submit" value="Volver" />
								</form>
								<?
							}
						} 
						else
						{
							print("Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.");
							?>
							<form action="index.php" method="post">
				
							<input type="submit" value="Volver" />
							</form>
							<?
						}
					
				}
				else 
				{
					print("<br><br>Campo vac&iacute;o, no ha seleccionado ninguna imagen principal");
					?>
					<form action="index.php" method="post">
				
					<input type="submit" value="Volver" />
					</form>
					<?
				}
			}
			else 
			{
				print("<br><br>La imagen que ha intentado adjuntar es mayor de 3.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.");
				?>
				<form action="index.php" method="post">
			
				<input type="submit" value="Volver" />
				</form>
				<?
			}

el codigo de las funciones:
Código:
function reduceimagenjpg($imagen)
   {
		$img_origen = imagecreatefromjpeg($imagen);
		$ancho_origen = imagesx(img_origen);
		$alto_origen = imagesy(img_origen);
		$ancho_limite = 500;
		
		$ancho_origen = $ancho_limite;
		$alto_origen = $ancho_limite * imagesy($img_origen) / imagesx($img_origen);
		
		
		$img_destino = imagecreatetruecolor($ancho_origen, $alto_origen);
		imagecopyresized($img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx($img_origen), imagesy($img_origen));
		imagejpeg($img_destino, $imagen);
	
   }  
   function reduceimagengif($imagen)
   {
		$img_origen = imagecreatefromjpeg($imagen);
		$ancho_origen = imagesx(img_origen);
		$alto_origen = imagesy(img_origen);
		$ancho_limite = 500;
		
		$ancho_origen = $ancho_limite;
		$alto_origen = $ancho_limite * imagesy($img_origen) / imagesx($img_origen);
		
		
		$img_destino = imagecreatetruecolor($ancho_origen, $alto_origen);
		imagecopyresized($img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx($img_origen), imagesy($img_origen));
		imagejpeg($img_destino, $imagen);
	
   }
   function mediajpg($imagen, $nuevaruta)
   {
		$img_origen = imagecreatefromjpeg($imagen);
		$ancho_origen = imagesx(img_origen);
		$alto_origen = imagesy(img_origen);
		$ancho_limite = 250;
		
		$ancho_origen = $ancho_limite;
		$alto_origen = $ancho_limite * imagesy($img_origen) / imagesx($img_origen);
		
		
		$img_destino = imagecreatetruecolor($ancho_origen, $alto_origen);
		imagecopyresized($img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx($img_origen), imagesy($img_origen));
		imagejpeg($img_destino, $nuevaruta);
	
   }  
   function mediagif($imagen, $nuevaruta)
   {
		$img_origen = imagecreatefromjpeg($imagen);
		$ancho_origen = imagesx(img_origen);
		$alto_origen = imagesy(img_origen);
		$ancho_limite = 250;
		
		$ancho_origen = $ancho_limite;
		$alto_origen = $ancho_limite * imagesy($img_origen) / imagesx($img_origen);
		
		
		$img_destino = imagecreatetruecolor($ancho_origen, $alto_origen);
		imagecopyresized($img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx($img_origen), imagesy($img_origen));;
		imagejpeg($img_destino, $nuevaruta);
	
   }
   function miniaturajpg($imagen, $nuevaruta)
   {
		$img_origen = imagecreatefromjpeg($imagen);
		$ancho_origen = imagesx(img_origen);
		$alto_origen = imagesy(img_origen);
		$ancho_limite = 160;
		
		$ancho_origen = $ancho_limite;
		$alto_origen = $ancho_limite * imagesy($img_origen) / imagesx($img_origen);
		
		
		$img_destino = imagecreatetruecolor($ancho_origen, $alto_origen);
		imagecopyresized($img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx($img_origen), imagesy($img_origen));
		imagejpeg($img_destino, $nuevaruta);
	
   }  
   function miniaturagif($imagen, $nuevaruta)
   {
		$img_origen = imagecreatefromjpeg($imagen);
		$ancho_origen = imagesx(img_origen);
		$alto_origen = imagesy(img_origen);
		$ancho_limite = 160;
		
		$ancho_origen = $ancho_limite;
		$alto_origen = $ancho_limite * imagesy($img_origen) / imagesx($img_origen);
		
		
		$img_destino = imagecreatetruecolor($ancho_origen, $alto_origen);
		imagecopyresized($img_destino, $img_origen, 0, 0, 0, 0, $ancho_origen, $alto_origen, imagesx($img_origen), imagesy($img_origen));;
		imagejpeg($img_destino, $nuevaruta);
	
   }
   function limpiar_caracteres_especiales($s) {
	$s = ereg_replace("[áàâãª]","a",$s);
	$s = ereg_replace("[ÁÀÂÃ]","A",$s);
	$s = ereg_replace("[éèê]","e",$s);
	$s = ereg_replace("[ÉÈÊ]","E",$s);
	$s = ereg_replace("[íìî]","i",$s);
	$s = ereg_replace("[ÍÌÎ]","I",$s);
	$s = ereg_replace("[óòôõº]","o",$s);
	$s = ereg_replace("[ÓÒÔÕ]","O",$s);
	$s = ereg_replace("[úùû]","u",$s);
	$s = ereg_replace("[ÚÙÛ]","U",$s);
	$s = str_replace(" ","-",$s);
	$s = str_replace("ñ","n",$s);
	$s = str_replace("Ñ","N",$s);
	return $s;
}

Última edición por albertusphp; 04/10/2012 a las 02:54
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:23.