Foros del Web » Programando para Internet » PHP »

Imagenes de gran tamaño

Estas en el tema de Imagenes de gran tamaño en el foro de PHP en Foros del Web. Mi problema es que estoy probando unos script para redimensionar imágenes, pero la de gran tamaño, cogidas de la cámara -pesan más de 5 Mg-, ...
  #1 (permalink)  
Antiguo 07/06/2007, 11:10
JJM
 
Fecha de Ingreso: noviembre-2003
Mensajes: 77
Antigüedad: 20 años, 5 meses
Puntos: 0
Imagenes de gran tamaño

Mi problema es que estoy probando unos script para redimensionar imágenes, pero la de gran tamaño, cogidas de la cámara -pesan más de 5 Mg-, no puede con ellas.

Hay algún medio de tratar estas imagenes.

Gracias
  #2 (permalink)  
Antiguo 07/06/2007, 11:16
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Re: Imagenes de gran tamaño

Muéstranos tu código y te ayudamos, estaria bien que error te lanza tu script para darnos mejor referencia...
  #3 (permalink)  
Antiguo 07/06/2007, 14:51
JJM
 
Fecha de Ingreso: noviembre-2003
Mensajes: 77
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Imagenes de gran tamaño

Cita:
Iniciado por lado2mx Ver Mensaje
Muéstranos tu código y te ayudamos, estaria bien que error te lanza tu script para darnos mejor referencia...
Gracias por contestar, mañana lo subo, ahora no lo tengo a mano.
No me da ningún error, no hace nada, es decir, no sube la imagen.
  #4 (permalink)  
Antiguo 08/06/2007, 00:04
JJM
 
Fecha de Ingreso: noviembre-2003
Mensajes: 77
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Imagenes de gran tamaño

Cita:
Iniciado por lado2mx Ver Mensaje
Muéstranos tu código y te ayudamos, estaria bien que error te lanza tu script para darnos mejor referencia...
Este es el código. Quiero que me cambie la imagen a 500 x 375 y la suba a la carpera 'obras' (cosa que realiza, pero no con las fotos de un peso de 5 Mg.)

<?php

function redimensionar_imagen($imagen, $nombre_imagen_asociada)
{
//indicamos el directorio donde se van a colgar las imágenes
$directorio = 'obras/' ;
//establecemos los límites de ancho y alto
$nuevo_ancho = 500 ;
$nuevo_alto = 375 ;
//Recojo información de la imágen
$info_imagen = getimagesize($imagen);
$alto = $info_imagen[1];
$ancho = $info_imagen[0];
$tipo_imagen = $info_imagen[2];

//Determino las nuevas medidas en función de los límites
if($ancho > $nuevo_ancho OR $alto > $nuevo_alto)
{
if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))
{
$nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;
}
else
{
$nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);
}
}
else //si la imagen es más pequeña que los límites la dejo igual.
{
$nuevo_alto = $alto;
$nuevo_ancho = $ancho;
}
// dependiendo del tipo de imagen tengo que usar diferentes funciones
switch ($tipo_imagen) {
case 1: //si es gif …
$imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromgif($imagen);

//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
case 2: //si es jpeg …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefromjpeg($imagen);

//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;

case 3: //si es png …
$imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$imagen_vieja = imagecreatefrompng($imagen);

//cambio de tamaño…
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
break;
}
return true; //si todo ha ido bien devuelve true
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Imagen a Blob</title>
<body>
<form name="frmimage" id="frmimage" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>">
<input type="file" id="foto" name="foto" size="40" />
<input type="submit" name="enviar" id="enviar" value="Insertar obra" />
</form>
</body>
</html>

<?php

// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["enviar"])) ? true : false;
if($postback){
// Nivel de errores
error_reporting(E_ALL);
$arcfoto = $_FILES["foto"]["name"];

// Escalar imagen grande
redimensionar_imagen($foto, $arcfoto);
}

?>
  #5 (permalink)  
Antiguo 08/06/2007, 13:47
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Re: Imagenes de gran tamaño

Primero, comprueba si tu servidor tienes la capacidad de subir archivos por PHP hasta por 6 u 8 megas, simplemente tienes el candado que el servidor solo admite hasta 2.
Segundo, la carpeta 'obras' debe tener privilegios 777 en el CHMOD, se modifica con tu FTP.
En cuanto a este código:
Código PHP:
 <?php

// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["enviar"])) ? true false;
if(
$postback){
  
// Nivel de errores
  
error_reporting(E_ALL);
  
$arcfoto $_FILES["foto"]["name"];

  
// Escalar imagen grande
  
redimensionar_imagen($foto$arcfoto);
}

?>
Debes quitar error_reporting(E_ALL); porque no te muestra el error, y simula que subiste el archivo sin preguntar.
  #6 (permalink)  
Antiguo 08/06/2007, 14:03
JJM
 
Fecha de Ingreso: noviembre-2003
Mensajes: 77
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Imagenes de gran tamaño

Cita:
Iniciado por lado2mx Ver Mensaje
Primero, comprueba si tu servidor tienes la capacidad de subir archivos por PHP hasta por 6 u 8 megas, simplemente tienes el candado que el servidor solo admite hasta 2.
Segundo, la carpeta 'obras' debe tener privilegios 777 en el CHMOD, se modifica con tu FTP.
.
Gracias por las sugerencias.
- la carpeta obras sí tiene permisos, ya que me sube sin problemas los demás archivos.
- voy a quitar la línea que me indicas
- el de comprobar si está limitada la capidad de los archivos (por el tamaño), no lo tengo muy claro como hacerlo. Tengo PHP5. Lo debo mirar en el .ini ?
  #7 (permalink)  
Antiguo 08/06/2007, 14:28
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
Re: Imagenes de gran tamaño

Asi es en el .ini hay una directiva que dice upload_max_size, esta es la que tienes que verificar.

Saludos.
  #8 (permalink)  
Antiguo 08/06/2007, 18:19
 
Fecha de Ingreso: abril-2007
Mensajes: 14
Antigüedad: 17 años
Puntos: 0
Re: Imagenes de gran tamaño

Buenas,

Estoy leyendo esto y por lo que veo lo que hacen es solamente cambiar las dimensiones que se muestran al usuario verdad?

El archivo se muestra mas pequeño de lo que es (digamos 550 * 100 px) pero en realidad sigue pesando 5500 * 1000.

Tengo una duda sobre como cambiar la resolución real... si alguien sabe sobre el tema agradecería su ayuda

forosdelweb.com ? showthread.php?p=2031039#post2031039


Gracias
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 01:33.