Foros del Web » Programando para Internet » PHP »

como hacer thumbnails "dinamicamente"

Estas en el tema de como hacer thumbnails "dinamicamente" en el foro de PHP en Foros del Web. hola :D bueno hacia tiempo que no me pasaba he? mi duda es que no se como hacerlo para crear thumbnails "al vuelo" sin guardarlas ...
  #1 (permalink)  
Antiguo 27/09/2004, 04:16
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 20 años, 6 meses
Puntos: 0
como hacer thumbnails "dinamicamente"

hola :D bueno hacia tiempo que no me pasaba he?

mi duda es que no se como hacerlo para crear thumbnails "al vuelo" sin guardarlas en el servidor :D,tenia un codigo que me baje de la red ^^ pero solo funciona si las imagenes estan en el servidor y lo que quiero es que tambien lo haga con imagenes externas :D

gracias:D
  #2 (permalink)  
Antiguo 27/09/2004, 04:31
 
Fecha de Ingreso: julio-2003
Mensajes: 97
Antigüedad: 21 años, 4 meses
Puntos: 0
bueno, yo la verdad es que tuve ese mismo porblema y opte por hacerlo en dos pasos, subirlo al servidor en una carpeta temporal y luego pillarlo de ahí, copiar y hacer el thumb que guarda en otra carpeta... lo único q tenia que hacer es cada cierto tiempo borrar todas las imagenes del directorio temporal...

se q es una chapuza, jeje... pero estuve buscando y no encontré otra solución...
  #3 (permalink)  
Antiguo 27/09/2004, 04:41
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 20 años, 6 meses
Puntos: 0
al final me tocara hacer lo que dices ^^u fijo xDDDDD,si no sale ninguna opcion mas....tendre que acerlo.

gracias :D
  #4 (permalink)  
Antiguo 27/09/2004, 05:49
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años, 6 meses
Puntos: 5
Classes

Bueno pues mira da la casualidad que yo acavo de terminar lo que pides para una de mis webs y ya puesto lo comprato con tigo y con todos los que lo necesiten:

aqui va el codigo:
classe: thumbnail.class.php
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*$resize));
            
imagecopyresized($im,$original_image,0,0,0,0,ceil($x*$resize),ceil($y*$resize),$x,$y);

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

?>
classe: thumbnail.php
Código PHP:
<?php
    
    
include('thumbnail.class.php');
    
    
$image=new thumbnail($_GET['file']);
    
$image->size($_GET['x'],$_GET['y']);
    
$image->show();
?>
este ultimo tiene que ir en la misma carpeta o bien modificar la ruta del include importante !!!

luego para llamar a la imagen a la cual quieres hacerle el thumbnail lo haces asi:

Código PHP:
http://www.TUWEB.com/thumbnail.php?x=100&y=130&file=RUTA URL IMAGEN 
Paso a comentar esa url:
RUTA URL IMAGEN

x=100&y=130 :::::::: tamaño de la miniatura
file= ::::::: variable que contiene la ruta de la imagen real
TUWEB.com ::::: esta claro no ? jeje


un ejemplo desde mi servidor al logo de forosdelweb:


Saludos y espero te sirva
__________________
Si la vida te da la espalda tocale el culo
  #5 (permalink)  
Antiguo 27/09/2004, 07:22
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 21 años, 4 meses
Puntos: 0
Freedatos,.... en serio,..... . ....... .. ¡¡¡¡¡¡¡NO SÉ COMO AGRADECERTE ESTO!!!!!! Muchísimas gracias, de verdad, me has ahorrado muchísimo dolor de cabeza!!!!


Gracias, de nuevo. Gracias, gracias!!!
  #6 (permalink)  
Antiguo 27/09/2004, 09:17
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 20 años, 6 meses
Puntos: 0
Freedatos :D bravoooo!!!!!!!! LOVE YO GRACIAS :D muchiiiismas gracias :D
  #7 (permalink)  
Antiguo 27/09/2004, 09:59
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 23 años
Puntos: 0
Newphp me he dado cuenta que si le pones una iamgen, no la deforma si no que la hace al tamaño de la proporcion del ancho.
Por otro lado Freedatos, has solucionado un tema que llevamos meses muchos para hacer algo bien y con pocas complicaciones.
Gracias por compartirlo
__________________
Seguro que ahora me sale mejor!
  #8 (permalink)  
Antiguo 29/09/2004, 11:19
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 23 años
Puntos: 0
Tengo un fallo:
Warning: Cannot add header information - headers already sent by (output started at /usr/local/psa/home/vhosts/derelax.com/httpdocs/DeRelax-V2/thumbnail.class.php:35) in /usr/local/psa/home/vhosts/derelax.com/httpdocs/DeRelax-V2/thumbnail.class.php on line 12
// Esto no se que puede ser :S

Fatal error: imagecreatetruecolor(): requires GD 2.0 or later in /usr/local/psa/home/vhosts/derelax.com/httpdocs/DeRelax-V2/thumbnail.class.php on line 27
// Aqui que pongo si tengo GD 1.x

Esta es la direccion de la foto por si quereis ver el error:
http://www.derelax.com/DeRelax-V2/th...96109943_1.jpg
__________________
Seguro que ahora me sale mejor!
  #9 (permalink)  
Antiguo 29/09/2004, 11:27
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 20 años, 6 meses
Puntos: 0
benti es cierto lo que decias de la imagen ^^ me di cuenta rapido por eso borre el mensaje xD incluso antes que lo pusieras:D

sobre el error creo que es porque requiere GD 2.0 o superior ^^ almenos eso creo que pone
  #10 (permalink)  
Antiguo 29/09/2004, 18:40
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años, 6 meses
Puntos: 5
Querido amigo :

error: imagecreatetruecolor(): requires GD 2.0 or later

Requiere la version 2.0 o superior de las librerias GD, te consejaria que actualizaras las librerias de tu server, las que tienes son muy antiguas ya no se programa para tales.
Si no eres el administrador de el server donde te alojas pegales una pedra a los administradores y que actualizen sus maquinas que no se puede ir asi por el mundo hombre jeje que la GD es GRATIS !!!

Bueno hay esta tu problema que necesitas actualizar las librerias de GD

Agregame al msn:
[email protected] para mas ayuda

Saludos.
__________________
Si la vida te da la espalda tocale el culo

Última edición por freedatos; 29/09/2004 a las 18:44
  #11 (permalink)  
Antiguo 29/09/2004, 22:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 20 años, 3 meses
Puntos: 0
freedatos agradecerte por un código tan legible y útil.... anda no tienes alguna clase igual para subir, mover, borrar ficheros, crear, mover y borrar carpetas en el server... ?.
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
  #12 (permalink)  
Antiguo 30/09/2004, 02:40
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años, 6 meses
Puntos: 5
Un rollo FTP web ?

No nunca hice algo de eso pero vamos no creo que sea muy cumplicado, pero vamos no, no lo tengo.
lo que si te puedo es dar un link donde hay un scrip echo muy bueno para ello:
http://www.v-wijk.net/

esta de puta madre. espero que te sirva.

Saludos
__________________
Si la vida te da la espalda tocale el culo
  #13 (permalink)  
Antiguo 11/12/2004, 03:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 9
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola a todos,miren tengo un problema con el codigo de freedatos,no me da error pero me muestra una cruz roja,como cuando no puede cargar la imagen.
¿Donde esta el error?
  #14 (permalink)  
Antiguo 11/12/2004, 14:40
Avatar de camargo  
Fecha de Ingreso: abril-2002
Ubicación: Kerétaro, Méjiko
Mensajes: 1.045
Antigüedad: 22 años, 7 meses
Puntos: 2
http://www.forosdelweb.com/f18/dado-este-codigo-como-hago-para-que-253285/

ahi tiene un buen codigo para subir 5 imagenes y hacerlas thumbs ;)

salu2
__________________
http://www.chorcha.com
  #15 (permalink)  
Antiguo 17/07/2005, 14:58
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 20 años, 2 meses
Puntos: 5
A mi simplemente me devuelve esto:

La imagen "http://www.tutienditaonline.net/thumbnail.php?x=100&y=100&file=images/113045gra.jpg” no puede mostrarse porque contiene errores.

¿Por qué?
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #16 (permalink)  
Antiguo 17/07/2005, 15:53
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 21 años, 4 meses
Puntos: 0
Algo falla en el módulo.

Pasa hasta con las imágenes que me funcionan en mi web.

¿Tienes las librerías GD instaladas? ¿Que SO usa tu servidor?
  #17 (permalink)  
Antiguo 17/07/2005, 17:05
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 20 años, 2 meses
Puntos: 5
Tengo las librerías GD instaladas; específicamente la versión: 2.0.28. El SO de mi servidor es un Linux. El problema es que las librerías GD no devuelven ningún tipo de error, simplemente no muestran la imagen.

Con la versión vieja de IE 6 si el SP2, mostraría los errores, el problema es que no dispongo de esa versión.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #18 (permalink)  
Antiguo 17/07/2005, 17:23
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 21 años, 4 meses
Puntos: 0
Con mi script funciona perfectamente. No es el mismo que aquí por que lo modifiqué bastante pero funciona. ¿Puedes pegarme el código de tu script a ver si veo el fallo?
  #19 (permalink)  
Antiguo 17/07/2005, 18:27
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 20 años, 2 meses
Puntos: 5
Ok, te lo pegaré exactamente:

thumbnail.class.php
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*$resize));
    
imagecopyresized($im,$original_image,0,0,0,0,ceil($x*$resize),ceil($y*$resize),$x,$y);
    
imagejpeg($im);
    
imagedestroy($im);
  }
}
?>
thumbnail.php
Código PHP:
<?php
include('thumbnail.class.php');
$image=new thumbnail($_GET['file']);
$image->size('100','80');
$image->show();
?>
Tengo a ambos en la misma carpeta. Los llamo con esta URL:

http://www.tutienditaonline.net/thum.../113045gra.jpg

Saludos y gracias!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #20 (permalink)  
Antiguo 18/07/2005, 17:57
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años, 6 meses
Puntos: 5
No falla simple mente tiene que poner la ruta completa de la imagen =http://
__________________
Si la vida te da la espalda tocale el culo
  #21 (permalink)  
Antiguo 18/07/2005, 18:39
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 20 años, 2 meses
Puntos: 5
Nop, si pongo:

http://www.tutienditaonline.net/thum.../113045gra.jpg

Igualmente no funciona.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #22 (permalink)  
Antiguo 19/07/2005, 01:54
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años, 6 meses
Puntos: 5
Copia y pega en un php esactamente como lo puse. ya que lo acavo de testear de nuevo y funciona. TAMBIEN puede ser problema de tu servidor que no disponga de gd o esta sea una version antigua.

Version 2.0 o superior es adecuada

saludos
__________________
Si la vida te da la espalda tocale el culo
  #23 (permalink)  
Antiguo 01/08/2005, 13:10
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 20 años, 2 meses
Puntos: 5
Nada, sigue dándome error. Por cierto, en tu script hay un error en esta linea:

Código PHP:
imagecreatetruecolor(ceil($x*$resize),ceil($y*$res  ize)); 
Dice: $res ize y debería ser $resize. Copié todo exactamente igual y sigue el problema. ¿Por qué no pegas aquí nuevamente el código exacto que usas en:

http://www.okysex.com/include/thumbnail.php?

Asi los vemos en detalle y revisamos si existe alguna diferencia.

Saludos y gracias!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
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




La zona horaria es GMT -6. Ahora son las 21:45.