Foros del Web » Programando para Internet » PHP »

Ayuda sobre un thumbail por favor

Estas en el tema de Ayuda sobre un thumbail por favor en el foro de PHP en Foros del Web. Primero que nada quiero decirles que soy nuevito en esto de programar en PHP ya que siempre lo hice en ASP, pero la necesidad me ...
  #1 (permalink)  
Antiguo 09/02/2006, 08:16
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 18 años, 9 meses
Puntos: 0
Ayuda sobre un thumbail por favor

Primero que nada quiero decirles que soy nuevito en esto de programar en PHP ya que siempre lo hice en ASP, pero la necesidad me esta obligando a imigrar.
Primero decirles que ya me lei un tutorial de php muy bueno que encontre en las faqs que se llama las memorias de un programador en php muy bueno en verdad, pero como no tengo mucho tiempo quiero ir al grano.

Encontre una funcion para hacer un thumbail de una imagen JPG el clasico, pequeña imagen de una grande para hacer una galeria fotografica, el codigo es este:

Código PHP:
<?php BEGIN__VBULLETIN__CODE__SNIPPET function thumbjpeg($imagen,$altura) {
     
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
     
$dir_thumb "thumbs/";
     
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
     // el thumbnail se llamaría "tn_imagen1.jpg"
     
$prefijo_thumb "tn_";

     
// Aquí tendremos el nombre de la imagen.
     
$nombre=basename($imagen);
     
// Aquí la ruta especificada para buscar la imagen.
     
$camino=dirname($imagen)."/";

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
     
if (!file_exists($camino.$dir_thumb))
          @
mkdir ($camino.$dir_thumb0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);

     
// Aquí comprovamos que la imagen que queremos crear no exista previamente
     
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
          echo 
$camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n";
          
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");

          
// miramos el tamaño de la imagen original...
          
$datos getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");

          
// intentamos escalar la imagen original a la medida que nos interesa
          
$ratio = ($datos[1] / $altura);
          
$anchura round($datos[0] / $ratio);

          
// esta será la nueva imagen reescalada
          
$thumb imagecreatetruecolor($anchura,$altura);

          
// con esta función la reescalamos
          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);

          
// voilà la salvamos con el nombre y en el lugar que nos interesa.
          
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
     }
}
Bien me funciona perfecto pero lo que necesito es cambiar la imagen en base a la anchura no a la altura y en ves de aunmentar el prefijo al inicio necesito aunmentarlo al final, antes del .jpg
Como ya os he dicho no recien ayer empeze con esto del php y talves sea muy sencillo lo que pido pero no se como hacerlo.
Espero sus respuestas

Saludos
__________________
:policia:
  #2 (permalink)  
Antiguo 09/02/2006, 12:59
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 18 años, 9 meses
Puntos: 0
help please
__________________
:policia:
  #3 (permalink)  
Antiguo 09/02/2006, 23:27
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 18 años, 9 meses
Puntos: 0
BUUU nadie ayuda
__________________
:policia:
  #4 (permalink)  
Antiguo 10/02/2006, 03:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 112
Antigüedad: 18 años, 5 meses
Puntos: 2
Yo tengo este código para crear las thumb, quizas te sirva, esta primera parte es sólo la funcion que redimensiona la imagen. Aca la redimensiona teniendo en cuenta la anchura, y la altura en forma proporcioinal, aunque eso lo podes modificar:

Código PHP:
function redimencionarthumb($file) {
    
$imagen ImageCreateFromJPEG($file);
        
unlink($file); 
    
$width  imagesx($imagen);
    
$height imagesy($imagen);
    
$nueva_anchura  100
    
$nueva_altura = ($nueva_anchura $height) / $width ;// Para un alto proporcinal (RECOMENDADO) ó ingresa directamente el alto requerido.
    
        
if (function_exists("imagecreatetruecolor")) {
           
$calidad ImageCreateTrueColor($nueva_anchura$nueva_altura);
        } else 
$calidad ImageCreate($nueva_anchura$nueva_altura);

    
ImageCopyResized($calidad$imagen0000$nueva_anchura$nueva_altura$width$height);
    
ImageJPEG($calidad$file100);
    
imagedestroy($imagen);
    return 
true;
}
?> 
Acá le das la dirección de la foto a redimensionar y el nombre de la nueva:
Código PHP:
<?php
    $ruta 
"subir/foto.jpg"// Acá va el nombre y dirección de la foto original (la grande)
    
$ruta2 "subir/thumb/fotothumb.jpg"// Acá va el nombre de la foto nueva, lo podes modificar a tu gusto.
        
if($_FILES['fichero']['type']=="image/jpeg") {
        
redimencionarthumb($ruta2);
            } 
        else { echo 
"El archivo no es una imágen JPG"; }
Espero que te sirva de algo, saludos.
__________________
PuertaX.Net
  #5 (permalink)  
Antiguo 10/02/2006, 07:42
Avatar de hanscruz  
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 18 años, 9 meses
Puntos: 0
Gracias lo probare ahora mismo
__________________
:policia:
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:08.