Foros del Web » Programando para Internet » PHP »

class de thumbnail????

Estas en el tema de class de thumbnail???? en el foro de PHP en Foros del Web. hola atodos en ete mismo foro encontre un class para generar thumbnail dinamicamente aca les pongo el vinculo para que lo vean. http://forosdelweb.com/showthread.ph...ighlight=vuelo ok lo ...
  #1 (permalink)  
Antiguo 03/01/2005, 07:12
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 13 años, 1 mes
Puntos: 1
Exclamación class de thumbnail????

hola atodos en ete mismo foro encontre un class para generar thumbnail dinamicamente aca les pongo el vinculo para que lo vean.
http://forosdelweb.com/showthread.ph...ighlight=vuelo

ok lo que quiero es utilisar esta class pero sin utilisar los parametros que usa como viene por defecto

esta es la class

Código PHP:
<?php


    
class thumbnail
    
{
        var 
$image;
        var 
$size_x;
        var 
$size_y;
        function 
thumbnail($url) {$this->image=$url;}
        function 
size($size_x,$size_y) {$this->size_x=$size_x;$this->size_y=$size_y;}
        function 
show()
        {
            
header("Content-type: image/jpeg");
               
               
$imageinfo=getimagesize ($this->image);
            
$x=$imageinfo[0];
            
$y=$imageinfo[1];
            if(
$imageinfo[2]==1)    $original_image=imagecreatefromgif($this->image);
            if(
$imageinfo[2]==2)    $original_image=imagecreatefromjpeg($this->image);
            if(
$imageinfo[2]==3)    $original_image=imagecreatefrompng($this->image);
            if(
$imageinfo[2]>3)        die('Image format not supported');

            
$resize_x=$this->size_x/$x;
            
$resize_y=$this->size_y/$y;
            if(
$resize_x<$resize_y$resize=$resize_x;
            else 
$resize=$resize_y;

            
$im    imagecreatetruecolor(ceil($x*$resize),ceil($y*$res  ize));
            
imagecopyresized($im,$original_image,0,0,0,0,ce  il($x*$resize),ceil($y*$resize),$x,$y);

               
imagejpeg($im);
               
imagedestroy($im);
        }
    }

?>
y este es el codigo que utiliza
Código PHP:
<?php
    
    
include('thumbnail.class.php');
    
    
$image=new thumbnail($_GET['file']);
    
$image->size($_GET['x'],$_GET['y']);
    
$image->show();
?>
esta es la forma en que se usa
Código PHP:
 [url]http://www.TUWEB.com/thumbnail.php?x=100&y=130&file=RUTA[/url] URL IMAGEN 
ok lo que quiero es utilisar la class pero quitandole lo de $_GET[];
donde esta get file pongo el nombre del fichero que viene de la base de datos
y donde esta (x,y) poner los numeros que deseo

ya lo probe pero de error
esto es el error que da
-----------------------------------------------------------------------
Parse error: parse error, unexpected T_STRING in C:\Apache2\htdocs\classe\thumbnail.php on line 28

Fatal error: Cannot instantiate non-existent class: thumbnail in C:\Apache2\htdocs\test.php on line 4
----------------------------------------------------------------------

realmente no tengo ni idea de que puede ser este error
gracias de antemano
saludos alexjnm
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #2 (permalink)  
Antiguo 03/01/2005, 07:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Mira el error, te dice que lo ha localizado en la linea 28. Segun me editor, la 28 es:
Código PHP:
            $im    imagecreatetruecolor(ceil($x*$resize),ceil($y*$res    ize)); 
¿No notas algo raro, como unos espacios que no vienen a cuento entre $res y ize? Pues ese es el fallo. Y posiblemente venga de hacer un copypasteo directo del codigo publicado en los foros, sin repasar la sintaxis. Lo digo porque el foro tiene la mania de meter ese tipo de fallos (algun problema con la rutina de mostrar el codigo coloreado o algo asi, tambien pasa con los /).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 03/01/2005, 07:41
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 13 años, 1 mes
Puntos: 1
error otraves

ok gracias eso mismo era pero mira da otro error otraves ahora si nose por que es ese error ya revise todas las sintacis pero nada

aca te lo mustro para que ves lo que es
----------------------------------------------------------------------------
Warning: Cannot modify header information - headers already sent by (output started at C:\Apache2\htdocs\classe\thumbnail.php:36) in C:\Apache2\htdocs\classe\thumbnail.php on line 13

Fatal error: Call to undefined function: imagecreatefromjpeg() in C:\Apache2\htdocs\classe\thumbnail.php on line 19

gracias de antemano
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #4 (permalink)  
Antiguo 03/01/2005, 07:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ahora te dice dos errores más .. si los lees bien te están avisando de:

1) tienes en la línea 36 de thumbnail.php algo de salida antes al navegador . .ya sea un espacio, algo de HTML, un salto de línea antes o despues de un <? anterior o ?> posterior ...

Nota: los mensajes de errror que "ves" en tu navegador provocan también esa "salida" .. así que si hay mensaje de error veras ese error sobre "cabeceras" y anteriormente el otro que puedas tener .. cuando resuelves el "error" suele desaparecer los errores sobre cabeceras.

2) .. No tienes instalado las librerias GD para usar dicha classe (que usa las funciones de GD: www.php.net/gd) revisalo con tu phpinfo() .. si no las tienes instaladas ya que parece que usas PHP bajo Windows .. se trata de "habilitarlas" simplemente quitando el ; delante de (php.ini) extension=php_gd2.dll y asegurandote que la directiva extension_dir = .. apunte a donde estan esas y otras php_xxx.dll (directorio extension/ .. normalmente bajo la instalación de PHP).

Un saludo,

Última edición por Cluster; 03/01/2005 a las 07:51
  #5 (permalink)  
Antiguo 03/01/2005, 07:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Como dijo Jack el destripador, vayamos por partes
Cita:
Warning: Cannot modify header information - headers already sent by (output started at C:\Apache2\htdocs\classe\thumbnail.php:36) in C:\Apache2\htdocs\classe\thumbnail.php on line 13
Leyendo el texto, y sabiendo que antes de un header() no puedes mandar salida al navegador, te esta diciendo que mandaste salida al navegador en la linea 36 de thumbnail.php. No lo he comprobado, pero casi apostaria a que la 36 es la del ultimo ?>. En PHP salida al navegador es tanto espacios en blanco como saltos de linea. Y cuando realizas un include es como si escribieses el contenido del fichero en el otro fichero. Asi que si despues del ?> hay espacios o saltos de linea, entonces los manda al navegador como salida. Colocate justo detras del ?> y elimina todo caracter.

Sobre el otro error, ¿tienes instalada y activada la extension GD? Compruebalo en el php.ini o con phpinfo() (www.php.net/phpinfo). Lo digo porque creo que imagecreatefromjpeg() existe en todas las versiones de GD.

saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 03/01/2005, 08:23
Avatar de baklao  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Ana - Isla de Margarita
Mensajes: 482
Antigüedad: 13 años
Puntos: 0
Hola creo que tienes unos espacios demas aqui:

imagecopyresized($im,$original_image,0,0,0,0,ce il($x*$resize),ceil($y*$resize
deberia ser ceil y no ce il

arregla eso y pruebalo de nuevo.

Suerte y Salu2.

Bye
__________________
Atte. Mohamed :aplauso:
  #7 (permalink)  
Antiguo 03/01/2005, 08:35
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 13 años, 1 mes
Puntos: 1
disculpen ???

ok entendi todo lo queme disen pero el problema es que no tengo GD instalado en el servido asi que no puedo usar esta class, que me recomindan para poder hacer lo que deseo, los thumbnail. de que otra forma se puede hacer esto sin utilisar GD.

saludos alexjnm
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #8 (permalink)  
Antiguo 03/01/2005, 08:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues con PHP no tienes otra opción (y más si no puedes instalar nada en el servidor .. por qué hay otra extensión/librerias para trabajar gráficos dinámicamente .. las "ImageMagick" pero, si no puedes usar ni las "comunes" GD .. menos estas últimas).

Pero .. en tu caso .. ¿usas un servicio de hosting o es tu PC el servidor? (o es que donde vas a subir tus scripts ahí es donde no tienes instalado GD ni te lo van a instalar)?

Sólo te cabe hacerlo "a mano" con tu programa editor de imagenes y paciencia... Otras soluciones a base de cambiar el alto y ancho de un tag de imagen HTML (<img ...>) no son óptimas (la imagen pesa lo mismo y se sele ver "pésimo").

Un saludo,
  #9 (permalink)  
Antiguo 03/01/2005, 08:59
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 13 años, 1 mes
Puntos: 1
gracias a los dos

donde esta mi sitio, el servidor es de mi empresa asi que tengo aceso al servidor el problema es que estan en linux para poder instalar la libreria de GD tendria que recompilar php?????.

esa es mi incógnita.
gracias de antemano

alexjnm
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #10 (permalink)  
Antiguo 03/01/2005, 09:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por alexjnm
donde esta mi sitio, el servidor es de mi empresa asi que tengo aceso al servidor el problema es que estan en linux para poder instalar la libreria de GD tendria que recompilar php?????.

esa es mi incógnita.
gracias de antemano

alexjnm
Si, tendrías que recompilar PHP con opción GD (www.php.net/gd .. ahí veras que directiva de compilación necesitas) .. además de bajarte las librerías GD que ahí mismo tienes el link hacia ellas (para Linux).

En su defecto dependiendo de la distribución de Linux que uses puedes probar a usar un RPM o simlar para tu distribución de Linux. (en tal caso pregunta en los foros de Linux como hacerlo).

Un saludo,
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 04:53.