Foros del Web » Programando para Internet » PHP »

Problema con la libreria PHPImagen.lib.php

Estas en el tema de Problema con la libreria PHPImagen.lib.php en el foro de PHP en Foros del Web. Hola tengo un problema con mostrar una imagen modificando su tamaño con la libreria PHPImagen.lib.php de Okram funcion resize. Pero el problema es que no ...
  #1 (permalink)  
Antiguo 12/02/2009, 10:01
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Exclamación Problema con la libreria PHPImagen.lib.php

Hola tengo un problema con mostrar una imagen modificando su tamaño con la libreria PHPImagen.lib.php de Okram funcion resize.

Pero el problema es que no me muestra la imagen sale con una x donde supuestamente debe aparecer la imagen.

Para modifcar el tamaño con la libreria utilizo este archivo img.php

Código PHP:
<?php


$imagen 
$_GET['file'];
 
include 
"PHPImagen.lib.php"
 
$imagen = new Imagen($imagen); 

$nuevo_ancho $_GET['ancho']; 
$nuevo_alto $_GET['alto'];
$cut true

$imagen->resize($nuevo_ancho,$nuevo_alto,$cut);

$imagen->doPrint(100); 

?>
y para mostrar la imagen en la pagina que quiero lo hago de la siguiente manera:

Código HTML:
<img style="border: 1px solid #FFA88A; padding: 7px; background-color: #fff; margin: 0 5px;" src="img.php?file=ruta/imagen.jpg&ancho=80&alto=80"/> 
pero no me muestra la imagen y no se donde pueda estar el error

estoy trabajando localmente con php v. 5.2.5

Por favor necesito ayuda
  #2 (permalink)  
Antiguo 12/02/2009, 11:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con la libreria PHPImagen.lib.php

Dale botón derecho a la imagen y selecciona ver imagen, esto te mostrara la imagen en el navegador y puedes ver si hay errores el mensaje de error.

Saludos
  #3 (permalink)  
Antiguo 12/02/2009, 14:45
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

Cita:
Iniciado por GatorV Ver Mensaje
Dale botón derecho a la imagen y selecciona ver imagen, esto te mostrara la imagen en el navegador y puedes ver si hay errores el mensaje de error.

Saludos

Hola GatorV gracias por responder tan rapido.

Hice lo que me dijiste y me sale esto:

http//localhost/img.php?file=ruta/imagen.jpg&ancho=80&alto=80&cut=false

que es lo que yo coloco en el atributo src de la etiqueta img que utilizo para mostrar la imagen.

Lo que yo quiero con la libreria PHPImagen.lib.php es mostrar una imagen en mi pagina de tamaño de 80x80 ya que el tamaño de la imagen es muy grande y ademas lo quiero asi porque utilizo un script para al darle click haga un zoom al tamaño real de la imagen. Pero el problema es que el tamaño que quiero que se muestre la imagen(80x80) no sale, aparece con la x, y al utilizar el zoom me sale bn aparece la imagen orginal. A lo cual pienso que el problema esta al redimensionar la imagen, en la forma que muestro la imagen o en la que utilizo las funciones de la libreria...no se
  #4 (permalink)  
Antiguo 12/02/2009, 15:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con la libreria PHPImagen.lib.php

Es muy raro te debería minimo mostrar la imagen, a lo mejor te falta enviar las cabeceras indicando que es la imagen.

Seguro no te marca ningun error?

Saludos
  #5 (permalink)  
Antiguo 12/02/2009, 19:15
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

Hola GatorV,

no me sale ningun error solo no me muestra la imagen redimensionada.

te pongo el codigo de la libreria de las funciones resize y doprint de la libreria PHPImagen.lib.php

Código PHP:

public function resize($maxancho=null,$maxalto=null,$cut=false) {
        if(
$this->stop()) 
            return;
        if(
$cut != false$this->cut true;
        
$this->mw = (!is_numeric($maxancho) or $maxancho 1) ? $this->intval($maxancho);
        
$this->mh = (!is_numeric($maxalto) or $maxalto 1) ? $this->intval($maxalto);
        
$diff_w $this->w/$this->mw;
        
$diff_h $this->h/$this->mh;
        if(
$this->cut == true) {
            
$this->rh $this->mh;
            
$this->rw $this->mw;
            if(
$diff_w $diff_h) {
                
$prop $this->mh/$this->h;
                
$this->mw round($this->w*$prop);
                
$dist_x = ($this->rw-$this->mw)/2;
            } else {
                
$prop $this->mw/$this->w;
                
$this->mh round($this->h*$prop);
                
$dist_y = ($this->rh-$this->mh)/2;
            }
        } else {
            if(
$diff_w $diff_h) {
                
$prop $this->mw/$this->w;
                
$this->mh round($this->h*$prop);
            } else {
                
$prop $this->mh/$this->h;
                
$this->mw round($this->w*$prop);
            }
            
$this->rw $this->mw;
            
$this->rh $this->mh;
        }
        
$output imagecreatetruecolor($this->rw$this->rh);
        if(
$this->type == "gif" or $this->type == "png") {
            
$trn_i imagecolortransparent($this->source);
            if (
$trn_i >= 0) {
                
$trn_c imagecolorsforindex($this->source$trn_i);
                
$trn_i imagecolorallocate($output$trn_c['red'], $trn_c['green'], $trn_c['blue']);
                
imagefill($output00$trn_i);
                
imagecolortransparent($output$trn_i);
            } elseif(
$this->type == "png") {
                
imagealphablending($outputfalse);
                
$color imagecolorallocatealpha($output000127);
                
imagefill($output00$color);
                
imagesavealpha($outputtrue);
            } 
        }
        
$r imagecopyresampled($output$this->source$dist_x$dist_y00$this->mw$this->mh$this->w$this->h);
        
$this->source $output;
        return 
$r;
    } 
Código PHP:

public function doPrint($quality=null) {
        
$quality = (is_numeric($quality) and $quality <= 100 and $quality >= 1) ? intval($quality) : 75;
        
Header("Content-type: image/".$this->type);
        
$f2 $this->f2;
        switch(
$this->type) {
            case 
"gif":
                
imagegif($this->source);
                break;
            case 
"jpeg":
                
imagejpeg($this->source,null,$quality);
                break;
            case 
"png":
                
$quality 10 - (round($quality 10));
                
imagepng($this->source,null,$quality,PNG_ALL_FILTERS);
                break;
        } 
        exit;
    } 
  #6 (permalink)  
Antiguo 12/02/2009, 20:08
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Problema con la libreria PHPImagen.lib.php

Jandres86:

Prueba poniendo esto ->

Cita:
<img style="border: 1px solid #FFA88A; padding: 7px; background-color:
#fff; margin: 0 5px;" src="img.php?file=ruta/imagen.jpg&ancho=80&alto=80"/>
asi ->

Cita:
<img src="img.php?file=ruta/imagen.jpg&ancho=80&alto=80" style="border: 1px solid #FFA88A; padding: 7px; background-color:#fff; margin: 0 5px;"/>
Saludos Franco
  #7 (permalink)  
Antiguo 12/02/2009, 23:29
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

Cita:
Iniciado por franco190453 Ver Mensaje
Jandres86:

Prueba poniendo esto ->



asi ->



Saludos Franco
hola franco190453,

lo intente como me dijiste pero nada sigue igual sin mostrar la imagen redimensionada como lo quiero
  #8 (permalink)  
Antiguo 13/02/2009, 16:20
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con la libreria PHPImagen.lib.php

Pon error_reporting(E_ALL); al inicio de tu img.php y prueba abriendo la imagen directamente en el navegador. La clase genera una imagen de error en caso ocurra alguno, y si no te muestra nada probablemente haya un error PHP no mostrado. Si te sigue apareciendo sólo la ruta que pusiste sin nada más, ve si es que puedes ver el código fuente generado. A veces los errores suelen mostrarse ahí, pero como el navegador recibe las cabeceras de que es una imagen, no los muestra.

  #9 (permalink)  
Antiguo 14/02/2009, 12:00
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

Cita:
Iniciado por okram Ver Mensaje
Pon error_reporting(E_ALL); al inicio de tu img.php y prueba abriendo la imagen directamente en el navegador. La clase genera una imagen de error en caso ocurra alguno, y si no te muestra nada probablemente haya un error PHP no mostrado. Si te sigue apareciendo sólo la ruta que pusiste sin nada más, ve si es que puedes ver el código fuente generado. A veces los errores suelen mostrarse ahí, pero como el navegador recibe las cabeceras de que es una imagen, no los muestra.

hola okram

hice lo que me dijiste y me aparecio de nuevo de nuevo la ruta que puse

http//localhost/img.php?file=ruta/imagen.jpg&ancho=80&alto=80&cut=false

e intente mirar el codigo fuente generado pero no lo puedo ver, aparece deshabilitado 'ver codigo fuente'.
  #10 (permalink)  
Antiguo 14/02/2009, 13:00
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con la libreria PHPImagen.lib.php

En la función doPrint() comenta la línea que envía el header, y prueba de nuevo. Ahora sí te debería mostrar el error.

  #11 (permalink)  
Antiguo 14/02/2009, 15:40
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

Cita:
Iniciado por okram Ver Mensaje
En la función doPrint() comenta la línea que envía el header, y prueba de nuevo. Ahora sí te debería mostrar el error.

hola okram,

me salio el siguiente error seguido de una cantidad de caracteres y simbolos:

Notice: Undefined variable: dist_y in C:\wamp\www\PHPImagen.lib.php on line 111

la linea 111 es esta:

$r = imagecopyresampled($output, $this->source, $dist_x, $dist_y, 0, 0, $this->mw, $this->mh, $this->w, $this->h);

se encuentra en la funcion resize()
  #12 (permalink)  
Antiguo 14/02/2009, 15:56
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con la libreria PHPImagen.lib.php

Pon al inicio del script la línea error_reporting(0);. Ve lo que imprime. SI te salen miles de caracteres "raros", restauras la linea del header().

  #13 (permalink)  
Antiguo 14/02/2009, 16:48
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

hola puse la linea en el script y me salieron caracteres raros, asi que restaure el header y de nuevo aparece la direccion que puse

http//localhost/img.php?file=ruta/imagen.jpg&ancho=80&alto=80&cut=false

no me muestra ningun mensaje de error.
  #14 (permalink)  
Antiguo 14/02/2009, 18:17
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con la libreria PHPImagen.lib.php

Es extraño. Verifica que no haya ningun espacio ni nada antes de <?php, y prueba omitiendo el tag de cierre (No coloques el ?>).

  #15 (permalink)  
Antiguo 14/02/2009, 21:38
 
Fecha de Ingreso: febrero-2009
Ubicación: Mocoa - Colombia
Mensajes: 15
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema con la libreria PHPImagen.lib.php

hola okram

funciono quitandole la tag de cierre de php y funciono bn...

gracias por tu ayuda...
  #16 (permalink)  
Antiguo 14/02/2009, 21:41
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con la libreria PHPImagen.lib.php

Cita:
Iniciado por okram Ver Mensaje
Es extraño. Verifica que no haya ningun espacio ni nada antes de <?php, y prueba omitiendo el tag de cierre (No coloques el ?>).

Cita:
Iniciado por j-andres86
funciono quitandole la tag de cierre de php y funciono bn...
Pues viendo este tema me surgio una duda, ¿porque omitir el tag de cierre?
  #17 (permalink)  
Antiguo 14/02/2009, 23:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con la libreria PHPImagen.lib.php

Según el Manual de Zend, el tag de cierre no es necesario, de hecho si el archivo es 100% PHP se des aconseja su uso, esto es porque algunos editores agregan un salto de linea extra al final del archivo y eso causa muchas veces problemas con cabeceras.

Saludos
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:18.