Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2011, 23:13
Avatar de softmaster
softmaster
 
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 17 años, 9 meses
Puntos: 12
imagen negra al redimensionar con php y gd

Hola estoy redimensionando unas imagenes con php y la libreria gd y funciona pero cuando lo subo al servidor no funciona... me hace el corte pero solo muestra una imagen negra...


este es el codigo que estoy usando

Código PHP:
class Imagen { 
          var 
$entrada = ""; 
          var 
$width = 0; 
          var 
$height = 0; 
          var 
$tipo = 0; 

          function 
Imagen($ent) { 
                   
$this->entrada = $ent; 
                   list(
$wid, $hei, $tip) = getimagesize($ent); 
                   
$this->width = $wid; 
                   
$this->height = $hei; 
                   
$this->tipo = $tip; 
          } 

          function 
getThumb($w, $h, $salida, $opc = false) { 
                   
$ent = $this->entrada; 
                   
$tip = $this->tipo; 
                   
$wid = $this->width; 
                   
$hei = $this->height; 

                   if (
$w) { 
                      
$newwidth = $w; 
                      
$newheight = round(($hei / $wid) * $newwidth); 
                   }  elseif (
$h) { 
                      
$newheight = $h; 
                      
$newwidth = round(($wid / $hei) * $newheight); 
                   } 
                   
// Cargar la imagen 
                   
$thumb = imagecreatetruecolor($newwidth, $newheight); 
                   if (
$tip == 1) { 
                      
$source = imagecreatefromgif($ent); 
                   }  elseif (
$tip == 2) { 
                      
$source = imagecreatefromjpeg($ent); 
                   }  elseif (
$tip == 3) { 
                      
$source = imagecreatefrompng($ent); 
                   } 

                   
// Redimensionar 
                   
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $wid, $hei); 

                   
// Mostrar la nueva imagen 
                   
if ($opc) return $thumb; 
                   else return 
imagejpeg($thumb, $salida); 
          } 

          function 
getNothumb($w, $h, $salida, $opc = false) { 
                   
$ent = $this->entrada; 
                   
$tip = $this->tipo; 
                   
$wid = $this->width; 
                   
$hei = $this->height; 

                   if (
$h) { 
                      
$newheight = $h; 
                      
$newwidth = round(($wid / $hei) * $newheight); 
                   }  else if (
$w) { 
                      
$newwidth = $w; 
                      
$newheight = round(($hei / $wid) * $newwidth); 
                   } 
                   
// Cargar la imagen 
                   
$thumb = imagecreatetruecolor($newwidth, $newheight); 
                   if (
$tip == 1) { 
                      
$source = imagecreatefromgif($ent); 
                   }  elseif (
$tip == 2) { 
                      
$source = imagecreatefromjpeg($ent); 
                   }  elseif (
$tip == 3) { 
                      
$source = imagecreatefrompng($ent); 
                   } 

                   
// Redimensionar 
                   
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $wid, $hei); 

                   
// Mostrar la nueva imagen 
                   
if ($opc) return $thumb; 
                   else return 
imagejpeg($thumb, $salida); 
          } 

          function 
getCorte($we, $he, $salida, $opc = false) { 
                   
$img = $this->entrada; 
                   
$wid = $this->width; 
                   
$hei = $this->height; 
                   
$tip = $this->tipo; 

                   if (
$wid / $we > $hei / $he) { 
                      
$hp = $hei; 
                      
$wp = round(($we / $he) * $hp); 
                   }  else { 
                      
$wp = $wid; 
                      
$hp = round(($he / $we) * $wp); 
                   } 

                   
$lp = round(($wid - $wp) / 2); 
                   
$tp = round(($hei - $hp) / 2); 

                   
$thumb = imagecreatetruecolor($we, $he); 
                   if (
$tip == 1) { 
                     
$source = imagecreatefromgif($img); 
                    }  elseif (
$tip == 2) { 
                     
$source = imagecreatefromjpeg($img); 
                   }  elseif (
$tip == 3) { 
                     
$source = imagecreatefrompng($img); 
                   } 

                   
imagecopyresampled($thumb, $source, 0, 0, $lp, $tp, $we, $he, $wp, $hp); 

                   if (
$opc) return $thumb; 
                   else return 
imagejpeg($thumb, $salida); 
          } 
    } 

    if (isset(
$_GET["img"])) { 
       
$img = new Imagen($_GET["img"]); 
       
$tip = $_GET["tip"]; 
       
$w = $_GET["w"]; 
       
$h = $_GET["h"]; 

       
header("Content-type: image/jpeg"); 
       if (
$tip == 0) { 
          
imagejpeg($img->getThumb($w, $h, "", true)); 
       }  elseif (
$tip == 1) { 
          
imagejpeg($img->getNothumb($w, $h, "", true)); 
       }  elseif (
$tip == 2) { 
          
imagejpeg($img->getCorte($w, $h, "", true)); 
       } 
    } 
la unica diferencia que veo entre el hosting y mi servidor de prueba es que yo tengo "T1Lib Support" habilitado (true) y en el servidor no.. podra ser eso ? o es error de codigo...

alguna idea ?