Foros del Web » Programando para Internet » PHP »

Problema con imgejpeg y guardado de imagen

Estas en el tema de Problema con imgejpeg y guardado de imagen en el foro de PHP en Foros del Web. Código PHP: <?php // El archivo $nombre_archivo  =  'imagen.jpg' ; // Establecer un ancho y alto máximo $ancho  =  100 ; $alto  =  100 ; // Tipo de contenido header ( 'Content-Type: image/jpeg' ); // Obtener las nuevas dimensiones list( $ancho_orig ...
  #1 (permalink)  
Antiguo 12/01/2012, 06:19
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Problema con imgejpeg y guardado de imagen

Código PHP:
<?php
// El archivo
$nombre_archivo 'imagen.jpg';

// Establecer un ancho y alto máximo
$ancho 100;
$alto 100;

// Tipo de contenido
header('Content-Type: image/jpeg');

// Obtener las nuevas dimensiones
list($ancho_orig$alto_orig) = getimagesize($nombre_archivo);

$ratio_orig $ancho_orig/$alto_orig;

if (
$ancho/$alto $ratio_orig) {
   
$ancho $alto*$ratio_orig;
} else {
   
$alto $ancho/$ratio_orig;
}

// Redimensionar
$image_p imagecreatetruecolor($ancho$alto);
$image imagecreatefromjpeg($nombre_archivo);
imagecopyresampled($image_p$image0000$ancho$alto$ancho_orig$alto_orig);

// Imprimir
imagejpeg($image_pnull100);
?>
Haciendo esto, me saca la imagen perfecto, pero cuando quiero salvar, haciendo esto: imagejpeg($image_p, "nueva_imagen.jpg", 100); me dice que no se puede mostrar la imagen porque contiene errores.

¿Cual es el problema?
__________________
aste nagusia
  #2 (permalink)  
Antiguo 12/01/2012, 06:26
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problema con imgejpeg y guardado de imagen

Supongo q deberías quitar el header() en ese caso :S
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 12/01/2012, 07:11
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema con imgejpeg y guardado de imagen

Vale, quitando el header me funciona, pero tengo otro problemilla :(

Lo he pasado a php5 (POO) y me saca la imagen en negro

Código PHP:
<?php
class resize_new_image {
    private 
$image_name;
    private 
$image_new_name;
    private 
$image_width_maxsize;
    private 
$image_height_maxsize;
    
    public function 
__construct($image_name,$image_new_name,$image_width_maxsize,$image_height_maxsize) {
        
$this->image_name=$image_name;
        
$this->image_new_name=$image_new_name;
        
$this->image_width_maxsize=$image_width_maxsize;
        
$this->image_height_maxsize=$image_height_maxsize;
    }
    public function 
resize_image() {
        
//get original picture info
        
list($ancho_orig$alto_orig) = getimagesize($this->image_name);
        
$ratio_orig $ancho_orig/$alto_orig;
        if (
$this->image_width_maxsize/$this->image_height_maxsize $ratio_orig) {
               
$this->image_width_maxsize $this->image_height_maxsize *$ratio_orig;
        }
        else {
               
$this->image_height_maxsize $this->image_width_maxsize/$ratio_orig;
        }
        
//resize image
        
$image_p imagecreatetruecolor($this->image_height_maxsize$this->image_height_maxsize);
        
$image imagecreatefromjpeg($this->image_new_name);
        
imagecopyresampled($image_p$image0000$this->image_height_maxsize$this->image_height_maxsize$ancho_orig$alto_orig);
        echo 
$alto_orig;
        
//create new image
        
imagejpeg($image_p$this->image_new_name100);
        echo 
"<img src='{$this->image_new_name}'>";
    }
}
$minipic = new resize_new_image("mikel.jpg","mini_mikel2.jpg",100,100);
$minipic->resize_image();
?>
sabéis a que se debe?
__________________
aste nagusia
  #4 (permalink)  
Antiguo 12/01/2012, 07:15
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema con imgejpeg y guardado de imagen

nada, ya he dado con el error

era

$image = imagecreatefromjpeg($this->image_name);

en vez de

$image = imagecreatefromjpeg($this->image_new_name);

gracias!
__________________
aste nagusia
  #5 (permalink)  
Antiguo 12/01/2012, 07:19
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema con imgejpeg y guardado de imagen

no entiendo :(

Código PHP:
<?php
class resize_new_image {
    private 
$image_name;
    private 
$image_new_name;
    private 
$image_width_maxsize;
    private 
$image_height_maxsize;
    
    public function 
__construct($image_name,$image_new_name,$image_width_maxsize,$image_height_maxsize) {
        
$this->image_name=$image_name;
        
$this->image_new_name=$image_new_name;
        
$this->image_width_maxsize=$image_width_maxsize;
        
$this->image_height_maxsize=$image_height_maxsize;
    }
    public function 
resize_image() {
        
//get original picture info
        
list($ancho_orig$alto_orig) = getimagesize($this->image_name);
        
$ratio_orig $ancho_orig/$alto_orig;
        if (
$this->image_width_maxsize/$this->image_height_maxsize $ratio_orig) {
               
$this->image_width_maxsize $this->image_height_maxsize *$ratio_orig;
        }
        else {
               
$this->image_height_maxsize $this->image_width_maxsize/$ratio_orig;
        }
        
//resize image
        
$image_p imagecreatetruecolor($this->image_height_maxsize$this->image_height_maxsize);
        
$image imagecreatefromjpeg($this->image_name);
        
imagecopyresampled($image_p$image0000$this->image_height_maxsize$this->image_height_maxsize$ancho_orig$alto_orig);
        
//create new image
        
imagejpeg($image_p$this->image_new_name100);
        echo 
"<img src='{$this->image_new_name}'>";
    }
}
$minipic = new resize_new_image("mikel.jpg","mini_mikel.jpg",100,100);
$minipic->resize_image();
$medpic = new resize_new_image("mikel.jpg","med_mikel.jpg",64,64);
$medpic->resize_image();
$iconpic = new resize_new_image("mikel.jpg","icon_mikel.jpg",32,32);
$iconpic->resize_image();
?>
me saca las imagenes con estos tamaños:

68x68
48x48
21x21

__________________
aste nagusia
  #6 (permalink)  
Antiguo 12/01/2012, 07:25
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problema con imgejpeg y guardado de imagen

¿Y q medidas tiene la imagen q pasas? xD
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 12/01/2012, 07:31
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema con imgejpeg y guardado de imagen

200x136

Lo curioso es que si lo hago como está en el primer post, me lo redimensiona bien, pero si hago:

Código PHP:
<?php
class resize_new_image {
    private 
$image_name;
    private 
$image_new_name;
    private 
$image_width_maxsize;
    private 
$image_height_maxsize;
    
    public function 
__construct($image_name,$image_new_name,$image_width_maxsize,$image_height_maxsize) {
        
$this->image_name=$image_name;
        
$this->image_new_name=$image_new_name;
        
$this->image_width_maxsize=$image_width_maxsize;
        
$this->image_height_maxsize=$image_height_maxsize;
    }
    public function 
resize_image() {
        
//get original picture info
        
list($ancho_orig$alto_orig) = getimagesize($this->image_name);
        
$ratio_orig $ancho_orig/$alto_orig;
        
$cuanto $this->image_width_maxsize/$this->image_height_maxsize;
        if (
$this->image_width_maxsize/$this->image_height_maxsize $ratio_orig) {
               
$this->image_width_maxsize $this->image_height_maxsize *$ratio_orig;
        }
        else {
               
$this->image_height_maxsize $this->image_width_maxsize/$ratio_orig;
        }
        
//resize image
        
$image_p imagecreatetruecolor($this->image_height_maxsize$this->image_height_maxsize);
        
$image imagecreatefromjpeg($this->image_name);
        
imagecopyresampled($image_p$image0000$this->image_width_maxsize$this->image_height_maxsize$ancho_orig$alto_orig);
        
//create new image
        
imagejpeg($image_p$this->image_new_name100);
        echo 
"<img src='{$this->image_new_name}'>";
    }
}
$minipic = new resize_new_image("mikel.jpg","mini_mikel.jpg",100,100);
$minipic->resize_image();
$medpic = new resize_new_image("mikel.jpg","med_mikel.jpg",64,64);
$medpic->resize_image();
$iconpic = new resize_new_image("mikel.jpg","icon_mikel.jpg",32,32);
$iconpic->resize_image();
?>
me lo hace con las proporciones que te comento en el anterior post :(
__________________
aste nagusia
  #8 (permalink)  
Antiguo 12/01/2012, 07:34
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 21 años, 5 meses
Puntos: 3
Respuesta: Problema con imgejpeg y guardado de imagen

nada, ha sido otro fallo bien, con los nombres de las variables.. ains

muchas gracias!
__________________
aste nagusia
  #9 (permalink)  
Antiguo 12/01/2012, 07:38
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Problema con imgejpeg y guardado de imagen

Prueba a cambiar
Código PHP:
$image_p imagecreatetruecolor($this->image_height_maxsize$this->image_height_maxsize); 
Por esto:
Código PHP:
$image_p imagecreatetruecolor($this->image_width_maxsize$this->image_height_maxsize); 
Edit: Te has adelantado ;)
__________________
>> Eleazan's Source
>> @Eleazan

Etiquetas: guardado
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:46.