Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2013, 17:33
Avatar de angelblxt
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.