Foros del Web » Programando para Internet » PHP »

Editar script redimesionador de imagenes timthumb.php

Estas en el tema de Editar script redimesionador de imagenes timthumb.php en el foro de PHP en Foros del Web. Hola a todos: Es mi primera vez en este excelente foro. Mi duda es la siguiente. Navengando encontre este fabuloso script timthumb.php que sirve para ...
  #1 (permalink)  
Antiguo 08/10/2009, 13:49
 
Fecha de Ingreso: octubre-2009
Ubicación: Santa Fe
Mensajes: 206
Antigüedad: 14 años, 6 meses
Puntos: 7
Editar script redimesionador de imagenes timthumb.php

Hola a todos:

Es mi primera vez en este excelente foro.

Mi duda es la siguiente. Navengando encontre este fabuloso script timthumb.php que sirve para dimensionar imagenes y normalmente es utilizado para wordpress.

El script funciona de maravilla el problema es que cuando seleccionas la imagen ya redimensionada y oprimes guardar como.. esta se guarda con el nobre del script (timthumb.png) me gustaria que la imagenes se guardara con el nombre original de dicha imagen.

Si alguien sabe que debo modificar en el script para poder lograr esto por favor que lo comente.

Aca les deje un enlace con el script: w w w. timthumb.googlecode.com/svn/trunk/timthumb.php

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 08/10/2009, 14:34
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: Editar script redimesionador de imagenes timthumb.php

Eso no es posible ya que el nombre lo obtiene directamente de la URL el cliente y es en un ambito en el cual PHP ya no tiene forma de actuar.

Saludos.
  #3 (permalink)  
Antiguo 08/10/2009, 18:56
 
Fecha de Ingreso: octubre-2009
Ubicación: Santa Fe
Mensajes: 206
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Editar script redimesionador de imagenes timthumb.php

Hola GatorV primero que nada gracias por tu respuesta.

Queria saber si estas 100% seguro de estoy. y si conoces algun otro script para redimensionar imagenes parecido a este que se pueda cambiar el nobre de salida de la imagen.

Saludos y nuevamente gracias
  #4 (permalink)  
Antiguo 09/10/2009, 09:28
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: Editar script redimesionador de imagenes timthumb.php

Como te comento con ningún script es posible, ya que el nombre lo obtiene directamente el cliente y no lo da el servidor, bueno sí lo da pero cuando guardas sobre la imagen el trabajo es diferente.

Saludos.
  #5 (permalink)  
Antiguo 09/10/2009, 11:30
 
Fecha de Ingreso: octubre-2009
Ubicación: Santa Fe
Mensajes: 206
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Editar script redimesionador de imagenes timthumb.php

Gracias nuevamente GatrV.

No conoces algun script que sirva para redimensionar? Es que tengo una galeria de imagenes y me gustaria insertarle algun script que redimensione las imagenes automaticamente.

Saludos
  #6 (permalink)  
Antiguo 09/10/2009, 11:56
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Editar script redimesionador de imagenes timthumb.php

Aki hay uno:

Código PHP:
<?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$source0000$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$source0000$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$source00$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));
       }
    }
?>
Y para las imagenes las llamas asi:
<img src="class.imagen.php?img=imagen.jpg&tip=2&w=100&h =100" />

Mas informacion aki:
http://www.forosdelweb.com/f91/redim...on-php-665923/

Espero te sirva
  #7 (permalink)  
Antiguo 09/10/2009, 17:08
 
Fecha de Ingreso: octubre-2009
Ubicación: Santa Fe
Mensajes: 206
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Editar script redimesionador de imagenes timthumb.php

Hola JessicaTj muchas gracias por tu ayuda.

Pero no lo logro hacer funcionar. Creo un archivo php con el script y lo guardo con el nobre class.imagen.php y luego creo un htm y compio el llamado del scritp con imagen que quiero redimensionar seria <img src="class.imagen.php?img=imagen_que_dese_dimensio nar.jpg&tip=2&w=100&h =100" />

Creo que eso seria todo pero no funciona. alguien sabe por que?
  #8 (permalink)  
Antiguo 09/10/2009, 17:41
Avatar de JessicaTJ  
Fecha de Ingreso: enero-2007
Ubicación: 127.0.0.1
Mensajes: 472
Antigüedad: 17 años, 3 meses
Puntos: 25
Respuesta: Editar script redimesionador de imagenes timthumb.php

Cita:
Iniciado por alvaro0022 Ver Mensaje
Hola JessicaTj muchas gracias por tu ayuda.

Pero no lo logro hacer funcionar. Creo un archivo php con el script y lo guardo con el nobre class.imagen.php y luego creo un htm y compio el llamado del scritp con imagen que quiero redimensionar seria <img src="class.imagen.php?img=imagen_que_dese_dimensio nar.jpg&tip=2&w=100&h =100" />

Creo que eso seria todo pero no funciona. alguien sabe por que?
Acuerdate incluir la clase dentro del archivo, no crees un HTML, crea otro PHP y has un include del archivo class.imagen.php para que funcione:

Código PHP:
include ("class.imagen.php");

echo 
"<img src='class.imagen.php?img=imagen_que_dese_dimensio nar.jpg&tip=2&w=100&h =100' />"
__________________
٩(͡๏̯͡๏)۶ || ٩(͡๏̯͡๏)۶
  #9 (permalink)  
Antiguo 09/10/2009, 17:45
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 1 mes
Puntos: 16
Respuesta: Editar script redimesionador de imagenes timthumb.php

yo tengo hecho esto, fijate si te sirve, igualmente lo tengo que mejorar

Código php:
Ver original
  1. <?php
  2. $getFile = $_GET['f'];
  3. //ROOT_PATH es una constante predefinida, en mi caso http://localhost/sitio
  4. $nombre = str_replace(ROOT_PATH,'',$getFile);
  5. $datos = getimagesize($nombre);
  6.  
  7. // Vemos si esta definido el ancho y el alto
  8.     //ancho
  9.         if(!isset($_GET['ancho'])){
  10.             $ancho = 175;
  11.         }else{
  12.             $ancho = $_GET['ancho'];
  13.         }
  14.     //alto
  15.         if(!isset($_GET['alto'])){
  16.             $alto = 175;
  17.         }else{
  18.             $alto = $_GET['alto'];
  19.         }
  20.  
  21.  
  22. switch($datos[2]){
  23.     case 1:
  24.         $img = @imagecreatefromgif($nombre);
  25.         $contType = 'Content-type: image/gif';
  26.         $imagen = ImageCreate($ancho,$alto);
  27.         ImageCopyResized($imagen,$img,0,0,0,0,$ancho,$alto,$datos[0],$datos[1]);
  28.         header($contType);
  29.         imageGIF($imagen);
  30.     break;
  31.     case 2:
  32.         $img = @imagecreatefromjpeg($nombre);
  33.         $contType = 'Content-type: image/jpeg';
  34.         $imagen = imagecreatetruecolor($ancho,$alto);
  35.         ImageCopyResized($imagen,$img,0,0,0,0,$ancho,$alto,$datos[0],$datos[1]);
  36.         header("Content-type: image/jpg");
  37.         imagejpeg($imagen);
  38.     break;
  39.     case 3:
  40.         $img = @imagecreatefrompng($nombre);
  41.         $contType = 'Content-type: image/png';
  42.         $imagen = ImageCreate($ancho,$alto);
  43.         ImageCopyResized($imagen,$img,0,0,0,0,$ancho,$alto,$datos[0],$datos[1]);
  44.         header($contType);
  45.         imagePNG($imagen);
  46.     break;
  47. }
  48.  
  49.  
  50.  
  51.  
  52. ?>
  #10 (permalink)  
Antiguo 09/10/2009, 18:17
 
Fecha de Ingreso: octubre-2009
Ubicación: Santa Fe
Mensajes: 206
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Editar script redimesionador de imagenes timthumb.php

Hola de nuevo.

Mil gracias por sus respuestas.

Pero igual sigo sin poder hacerlo funcionar. Disculpen mi ignorancia si alguien podria explicar dealladamente como hacerlo le estaria muy agradecido.

Y nuevamente me da verguenza volver a preguntar disculpen mi ignorancia.

Gracias y saludos!
  #11 (permalink)  
Antiguo 09/10/2009, 18:38
 
Fecha de Ingreso: abril-2008
Mensajes: 453
Antigüedad: 16 años, 1 mes
Puntos: 16
Respuesta: Editar script redimesionador de imagenes timthumb.php

si usas el que te pase yo, guarda ese codigo en un archivo por ejemplo

imagenes.php

y para mostrar imagenes haces

<img src="imagenes.php?f=nombre.jpg&ancho=180&alto=180" />

f=nombre -> nombre de la imagen
si no se especifica ancho y alto el valor por defecto sera de 175
  #12 (permalink)  
Antiguo 09/10/2009, 19:49
 
Fecha de Ingreso: octubre-2009
Ubicación: Santa Fe
Mensajes: 206
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Editar script redimesionador de imagenes timthumb.php

Samu22 muchisimas gracias. Funciona de mil maravillas. lo unico que sucede es que no puedo guardar la imagen. por ejeplo boton derecho guardar como no funciona.

Cual puede ser la causa?

De nuevo muchas gracias!!!!
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 13:36.