Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con el tratamiento de imágenes GD.

Estas en el tema de Problema con el tratamiento de imágenes GD. en el foro de PHP en Foros del Web. Buenos días a todos, recurro aquí porque tengo una duda que me está dando verdaderos quebraderos de cabeza, voy a intentar explicarla lo máximo posible. ...
  #1 (permalink)  
Antiguo 29/06/2013, 17:33
Avatar de angelblxt  
Fecha de Ingreso: febrero-2013
Ubicación: Zaragoza
Mensajes: 10
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta Problema con el tratamiento de imágenes GD.

Buenos días a todos, recurro aquí porque tengo una duda que me está dando verdaderos quebraderos de cabeza, voy a intentar explicarla lo máximo posible.

---

Resulta que tengo un Uploader de imágenes hecho en PHP, y sube las imágenes correctamente al directorio /ressources/photos/ pero, posteriormente quiero redimensionar las imágenes, por lo que tengo una clase para ello, la publico aquí:

Código PHP:
<?php
    
class Image
    
{

        private 
$sys;

        public function 
Image($system)
        {
            
$this->sys = $system;
        }

        public function 
ShowImage($path, $type, $size, $class = '', $style = '', $id = '')
        {
            
$string = $path.'---'.$type.'---'.$size;

            return 
'<img src="ressources/includes/resize.php?id='.$string.'" class="'. $class .'" style="'. $style .'" id="'. $id .'" />';
        }

        public function 
Resize($path, $type, $width)
        {
            switch(
$type)
            {
                case 
'gif' : $imagenOriginal = imagecreatefromgif($path); break;
                case 
'png' : $imagenOriginal = imagecreatefrompng($path); break;
                case 
'jpeg': $imagenOriginal = imagecreatefromjpeg($path); break;
                case 
'jpg' : $imagenOriginal = imagecreatefromjpeg($path); break;
            }

            
$anchoOriginal = imagesx($imagenOriginal);
            
$altoOriginal  = imagesy($imagenOriginal);

            
$altoFinal = ($width / $anchoOriginal) * $altoOriginal;

            
$imagenRedimensionada = imagecreatetruecolor($width, $altoFinal);

            
imagecopyresampled($imagenRedimensionada, $imagenOriginal, 0, 0, 0, 0, $width, $altoFinal, $anchoOriginal, $altoOriginal);
            
header('Content-type: '.$type);

            switch(
$type)
            {
                case 
'gif' : imagegif($imagenRedimensionada); break;
                case 
'png' : imagepng($imagenRedimensionada); break;
                case 
'jpeg': imagejpeg($imagenRedimensionada); break;
                case 
'jpg' : imagejpeg($imagenRedimensionada); break;
            }

            
imagedestroy($imagenOriginal);
            
imagedestroy($imagenRedimensionada);
        }
Aparece otro archivo entre las <img> su contenido es el siguiente:

Código PHP:
<?php
    
require '../../init.php';

    
$explode = explode('---',$string);

    
$path = $explode[0];
    
$type = $explode[1];
    
$size = $explode[2];

    echo 
$image->Resize('../../'.$path, $type, $size);
?>
Y la imagen la muestro así:

Código PHP:
<?php
    $image 
= new Image();

    echo 
$image->ShowImage('ressources/photos/evento.jpg', 'jpg', 100);
?>
El problema es que no la carga... no es problema del PHP porque si ressources/photos/evento.jpg lo cambio por ressources/img/genre/male.png esta si que sale.

En cambio, si muevo la imagen ressources/img/genre/male.png a ressources/photos/ y cambio el código, esta no se muestra... por lo que tendría que ser un problema de permisos y grupos de linux... publico los permisos de ressources/photos/:

Código:
-rw-r--r-- 1 www-data www-data 76282 jun 30 01:26 e6f8c7_evento.jpg
-rw-r--r-- 1 angelq   angelq    6628 jun 28 18:03 male.png
y no me muestra la imagen...

He probado a darle permisos 0777:

Código:
-rwxrwxrwx 1 www-data www-data 76282 jun 30 01:26 e6f8c7_evento.jpg
-rwxrwxrwx 1 angelq   angelq    6628 jun 28 18:03 male.png
y no me muestra la imagen...

Entonces me da por mirar en la carpeta ressources/img/genre/ a ver que permisos y a que grupo pertenece el archivo male.png y me encuentro con que tiene exáctamente los mismos que en el primer caso:

Código:
-rw-r--r-- 1 angelq   angelq    6628 jun 28 18:03 male.png
Así que no entiendo cual puede ser el maldito error...

Espero que me puedan ayudar, lo necesito... :S

Un cordial saludo a todos.
  #2 (permalink)  
Antiguo 30/06/2013, 00:54
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 16 años, 1 mes
Puntos: 331
Respuesta: Problema con el tratamiento de imágenes GD.

-rw-r--r-- 1 www-data www-data 76282 jun 30 01:26 e6f8c7_evento.jpg
-rw-r--r-- 1 angelq angelq 6628 jun 28 18:03 male.png


Has notado que ressources/photos/evento.jpg no existe?
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 30/06/2013, 04:42
Avatar de angelblxt  
Fecha de Ingreso: febrero-2013
Ubicación: Zaragoza
Mensajes: 10
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con el tratamiento de imágenes GD.

Cita:
Iniciado por repara2 Ver Mensaje
-rw-r--r-- 1 www-data www-data 76282 jun 30 01:26 e6f8c7_evento.jpg
-rw-r--r-- 1 angelq angelq 6628 jun 28 18:03 male.png


Has notado que ressources/photos/evento.jpg no existe?
He cambiado el nombre y sigue sin funcionar... ignora lo de e6f8c7_evento.jpg y reemplázalo por evento.jpg

P.D: Todos los archivos de la web tienen permisos 777, y al subir cualquier archivo los sube en el grupo www-data : www-data ¿Puede ser ese el problema?

Un saludo.
  #4 (permalink)  
Antiguo 30/06/2013, 13:03
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 16 años, 1 mes
Puntos: 331
Respuesta: Problema con el tratamiento de imágenes GD.

www-data : www-data ¿Puede ser ese el problema? esto es correcto, www-data es el grupo de Apache. Deberás comprobar paso con echo cada uno de los pasos hasta encontrar el problema, tiene pinta de ser un tema de path. salu2
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: tratamiento
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 15:02.