Foros del Web » Programando para Internet » PHP »

Configuracion libreria GD

Estas en el tema de Configuracion libreria GD en el foro de PHP en Foros del Web. Hola gente... tengo un script que me redimensiona las imagenes guardadas en la base de datos.. el tema es que en mi servidor de prueba ...
  #1 (permalink)  
Antiguo 02/04/2011, 11:38
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 17 años, 9 meses
Puntos: 12
Configuracion libreria GD

Hola gente... tengo un script que me redimensiona las imagenes guardadas en la base de datos..

el tema es que en mi servidor de prueba funciona pero cuando lo subo al servidor no funca.

hice varias pruebas y estoy casi seguro que es la configuracion de la libreria.

esta es mi configuracion:

array(12) { ["GD Version"]=> string(27) "bundled (2.0.34 compatible)" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(true) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(false) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) }

esta es la del servidor:

array(12) { ["GD Version"]=> string(27) "bundled (2.0.28 compatible)" ["FreeType Support"]=> bool(true) ["FreeType Linkage"]=> string(13) "with freetype" ["T1Lib Support"]=> bool(false) ["GIF Read Support"]=> bool(true) ["GIF Create Support"]=> bool(true) ["JPG Support"]=> bool(true) ["PNG Support"]=> bool(true) ["WBMP Support"]=> bool(true) ["XPM Support"]=> bool(false) ["XBM Support"]=> bool(true) ["JIS-mapped Japanese Font Support"]=> bool(false) }



la unica diferencia que veo es que yo tengo "T1Lib Support" habilitado (true) y en el servidor no

Este parametro puede que este haciendo no funcionar el script ??? que hace ese parametro ??

gracias gente... abrazo
  #2 (permalink)  
Antiguo 02/04/2011, 13:36
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 17 años, 9 meses
Puntos: 12
Respuesta: Configuracion libreria GD

este es el script uso para redimensionar


Código PHP:
    //Copyright © McAnam.com 
    
function iPintaImagenRedimensionada ($sDirImagen, $bEscalable, $ancho, $alto, $iTipo){
        
$sDirImagen="http://www.dominio.com/foto.jpg"; 
$bEscalable="0"; 
$ancho="300"; 
$alto="0"; 
$iTipo="2"; 
        
// Cogemos los datos de la imagen 
        
$vDatosImg = @getimagesize($sDirImagen); 

        if (!
$vDatosImg) return -8; 

        
// Recogemos el Tipo Mime 
        
if (isset($vDatosImg['mime'])) 
            
$sTipo = $vDatosImg['mime']; 
        else if(isset(
$vDatosImg[2])) 
            
$sTipo = image_type_to_mime_type($vDatosImg[2]); 
        else if (isset(
$iTipo)) 
            
$sTipo = image_type_to_mime_type($iTipo); 
        else 
            return -
10; 
        
// Recogemos la imagen a partir de la dirección dada ($sDirImagen) 
        
switch($vDatosImg[2]){ 
            case 
IMAGETYPE_GIF: 
                
$imgOrigen = imagecreatefromgif($sDirImagen); 
                break; 
            case 
IMAGETYPE_JPEG: 
                
$imgOrigen = imagecreatefromjpeg($sDirImagen); 
                break; 
            case 
IMAGETYPE_PNG: 
                
$imgOrigen = imagecreatefrompng($sDirImagen); 
                break; 
            case 
IMAGETYPE_SWF: 
            case 
IMAGETYPE_PSD: 
            case 
IMAGETYPE_BMP: 
            case 
IMAGETYPE_TIFF_II: 
            case 
IMAGETYPE_TIFF_MM: 
            case 
IMAGETYPE_JPC: 
            case 
IMAGETYPE_JP2: 
            case 
IMAGETYPE_JPX: 
            case 
IMAGETYPE_JB2: 
            case 
IMAGETYPE_SWC: 
            case 
IMAGETYPE_IFF: 
                return -
11; 
                break; 
            case 
IMAGETYPE_WBMP: 
                
$imgOrigen = imagecreatefromwbmp($sDirImagen); 
                break; 
            case 
IMAGETYPE_XBM: 
                
$imgOrigen = imagecreatefromxbm($sDirImagen); 
                break; 
            default: 
                return -
13; 
                break; 
        } 

        
/* 
            Establecemos los tamaños: 
                - Si bEscalable viene como true. 
                 Se multiplican los valores recibidos para ancho y alto 
                 por el ancho y alto de la imagen, 
                 así 0.5 sería la mitad de la imagen y 2 sería el doble 
                - Si bEscalable viene como false. 
                 Los tamaños serán los pasados por ancho y alto directamente 
                - Si ancho o alto vienen como 0 o numero negativo, 
                 el valor de esta propiedad será asignada proporcionalmente con 
                 el valor de la otra. 
                - Si ancho y alto vienen como 0 o numero negativo, Error 
        */ 

        
if (!(is_numeric($ancho)) || !(is_numeric($alto))) return -20; 

        if (
$bEscalable){ 
            if (
$ancho > 0){ 
                
$ancho *= $vDatosImg[0]; 
                if (
$alto > 0) $alto *= $vDatosImg[1]; 
                else 
$alto = $vDatosImg[1] * ($ancho / $vDatosImg[0]); 
            }else if (
$alto > 0){ 
                
$alto *= $vDatosImg[1]; 
                
$ancho = $vDatosImg[0] * ($alto / $vDatosImg[1]); 
            }else{ 
                return -
21;     
            } 
        }else{ 
            if ((
$ancho > 0) && ($alto < 1)) 
                
$alto = $vDatosImg[1] * ($ancho / $vDatosImg[0]); 
            else if ((
$alto > 0) && ($ancho < 1)) 
                
$ancho = $vDatosImg[0] * ($alto / $vDatosImg[1]); 
            else if ((
$alto < 1) && ($ancho < 1)) 
                return -
21;     

        } 

        
// Se crea la nueva imagen redimensionada 
        
if (function_exists("ImageCreateTrueColor")) 
            
$imgDestino = ImageCreateTrueColor($ancho,$alto); 
        else 
            
$imgDestino = ImageCreate($ancho,$alto); 

        
ImageCopyResized ($imgDestino, $imgOrigen, 0, 0, 0, 0, $ancho, $alto, $vDatosImg[0], $vDatosImg[1]); 

        
/* 
            Se envía la cabecera de los datos de la imagen. 
            Cuando llegue aquí no debe de haber sido enviado NADA. 
            Si se ha enviado algo, aunque fuera un "intro" o espacio daría error 
        */ 
        
header("Content-type: ".$sTipo); 

        
// Se pinta la imagen según el tipo 
        
switch($vDatosImg[2]){ 
            case 
IMAGETYPE_GIF: 
                
imagegif($imgDestino); 
                break; 
            case 
IMAGETYPE_JPEG: 
                
imagejpeg($imgDestino, $save_view); 
                break; 
            case 
IMAGETYPE_PNG: 
                
imagepng($imgDestino); 
                break; 
            case 
IMAGETYPE_SWF: 
            case 
IMAGETYPE_PSD: 
            case 
IMAGETYPE_BMP: 
            case 
IMAGETYPE_TIFF_II: 
            case 
IMAGETYPE_TIFF_MM: 
            case 
IMAGETYPE_JPC: 
            case 
IMAGETYPE_JP2: 
            case 
IMAGETYPE_JPX: 
            case 
IMAGETYPE_JB2: 
            case 
IMAGETYPE_SWC: 
            case 
IMAGETYPE_IFF: 
                return -
12; 
                break; 
            case 
IMAGETYPE_WBMP: 
                
imagewbmp($imgDestino); 
                break; 
            case 
IMAGETYPE_XBM: 
                
imagexbm($imgDestino); 
                break; 
            default: 
                return -
13; 
                break; 
        } 

        
imagedestroy($imgOrigen); 
        
imagedestroy($imgDestino); 

        return 
1; 

    } 

    function 
ErrorPintaImagenRedimensionada($iRetorno){ 

        
$sTexto1 = ""; 
        
$sTexto2 = ""; 

        switch(
$iRetorno){ 
            case -
8: 
                
$sTexto1 = "La dirección de la imagen dada no es válida"; 
                break; 
            case -
10: 
                
$sTexto1 = "No se ha encontrado el tipo mime de la imagen"; 
                
$sTexto2 = "ni en sus cabeceras ni pasadas por parámetro"; 
                break; 
            case -
11: 
                
$sTexto1 = "El tipo de la imagen dado no se puede redimensionar"; 
                
$sTexto2 = "Se recomiendan los tipos jpg, gif ó png"; 
                break; 
            case -
12: 
                
$sTexto1 = "No es posible crear una imagen con el tipo dado"; 
                
$sTexto2 = "Se recomiendan los tipos jpg, gif ó png"; 
                break; 
            case -
13: 
                
$sTexto1 = "El tipo mime no esta implementado"; 
                
$sTexto2 = "Se recomiendan los tipos jpg, gif ó png"; 
                break; 
            case -
20: 
                
$sTexto1 = "Error en los parámetros pasados ancho (3º) ó alto(4º)"; 
                
$sTexto2 = "Los valores deben ser numéricos enteros o decimales"; 
                break; 
            case -
21: 
                
$sTexto1 = "Error en los parámetros pasados ancho (3º) y alto(4º)"; 
                
$sTexto2 = "al menos uno de estos parámetros deben de ser positivos"; 
                break; 
            default: 
                if (
$iRetorno < 0) $sTexto1 = "Error desconocido"; 
                break; 
        } 

        if (
$sTexto1 != ""){ 
            
$imagen = imagecreate (400, 40); 
            
$cFondo = imagecolorallocate ($imagen, 255, 226, 169); 
            
$cTexto = imagecolorallocate ($imagen, 153, 102, 0); 
            
imagefilledrectangle ($imagen, 0, 0, 150, 30, $cFondo); 
            if (
$sTexto2 == ""){ 
                
imagestring ($imagen, 3, 5, 15, $sTexto1, $cTexto); 
            }else{ 
                
imagestring ($imagen, 3, 5, 5, $sTexto1, $cTexto); 
                
imagestring ($imagen, 3, 5, 20, $sTexto2, $cTexto); 
            } 

            
header("Content-type: image/png"); 
            
imagepng($imagen); 
            
imagedestroy($imagen); 
        } 

    } 

     
    
$iError = iPintaImagenRedimensionada("imagen.jpg", TRUE, 0.5, -1, IMAGETYPE_JPEG); 

Etiquetas: imagenes, libreriagd, mysql
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 05:21.