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: 11 años, 2 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$imagenOriginal0000$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: 13 años, 7 meses
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: 11 años, 2 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: 13 años, 7 meses
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 16:32.