Foros del Web » Programando para Internet » PHP »

creando Thumbinails dentro de tablas

Estas en el tema de creando Thumbinails dentro de tablas en el foro de PHP en Foros del Web. Hola, buenas a todos. Les describiré mi problema, de forma básica para ver si me pueden ayudar: Tengo una funcion que genera thumbinails, que funciona ...
  #1 (permalink)  
Antiguo 26/10/2004, 15:34
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 1 mes
Puntos: 0
creando Thumbinails dentro de tablas

Hola, buenas a todos.
Les describiré mi problema, de forma básica para ver si me pueden ayudar:

Tengo una funcion que genera thumbinails, que funciona exelente:

Código PHP:
function tn_create($image,$max_width,$max_height)
{
      
//Tomo las dimensiones de la imagen original
      
$size GetImageSize($image);
      
$width $size[0];
      
$height $size[1];

      
//Calculo el ratio
      
$x_ratio $max_width $width;
      
$y_ratio $max_height $height;

      
//Si la imagen original supera el tamaño del tn, calculo $tn_width y $tn_eight--

      
if ( ($width <= $max_width) && ($height <= $max_height) )
      {
         
$tn_width $width;
         
$tn_height $height;
      }
      else if ((
$x_ratio $height) < $max_height)
      {
         
$tn_height ceil($x_ratio $height);
         
$tn_width $max_width;
      }
      else
      {
         
$tn_width ceil($y_ratio $width);
         
$tn_height $max_height;
      }
      
//------------------------------------------------------------------------

      
$src ImageCreateFromJpeg($image);//Crea una imagen temporal en el servidor
      
$dst ImageCreate($tn_width,$tn_height); //Crea una imagen en blanco del tamaño del tn

      //Copio la imagen temporal dentro de la imagen destino, adaptando el tamaño
      
ImageCopyResized($dst$src0000,$tn_width,$tn_height,$width,$height);
      
//Creo directamente una salida para el navegador
      
header('Content-type: image/jpeg');
      
ImageJpeg($dstnull, -1);

      
//Destruyo las imagenes temporales
      
ImageDestroy($src);
      
ImageDestroy($dst);


A esta funcion la llamo de la siguiente manera:
por ejemplo:

tn_create('imagen.jpg',50,50);

y joya me devuelve un tn (thumbinail) de la imagen....
El problema es que yo antes del thumbinail, tengo que poner texto

y si ejecuto lo siguiente el tn no me lo muestra:

Código PHP:
echo "hola mundo <BR>";
tn_create('imagen.jpg',50,50); 
Se que el problema es por que estoy sacando una impresion por pantalla con el br antes que el header de la funcion....
Pero no sé como solucionarlo..
¿Como genero un tn en forma dinámica junto con texto en la misma pantalla ?
Se entiende mi duda?
AYUDA please.......
  #2 (permalink)  
Antiguo 26/10/2004, 15:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ese código con la llamada a tu función has de hacerlo en un script independiente .php . el cual llamaras por un tag de imagen común tipo:

<img src="ese_script.php">

en tu página que lo requieras con tu resto de HTML donde gustes ...

Si necesitas pasar un parámetro a ese script .. hazlo por el URL tipo:

<img src="ese_script.php?imagen=nose.jpg">

y en tu script ..

tn_create($_GET['imagen'],50,50);

Un saludo,
  #3 (permalink)  
Antiguo 27/10/2004, 08:01
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 1 mes
Puntos: 0
Ayuda para crear galería de thumbinails

Cluster, antes que nada gracias.
El tema es el siguiente:

La funcion tn_create, está en un archivo independiente, llamado func_tn.php.
Supongamos que en una carpeta tengo los sig. archivos:
- func_tn.php
- imagen1.jpg
- imagen2.jpg
- previsualizador.php

El script de previsualizador debe mostrar a las dos imagenes a manera de thumbinails dentro de una tabla, ayudame a crear este código, yo pondría:

Código PHP:
<?php
require func_tn.php;
echo 
'<TABLE>';

echo 
'<TR>';
echo 
'<TD>Esta es la imagen 1</TD>';
echo 
'<TD>'.tn_create('imagen1.jpg',50,50).'</TD>';
echo 
'</TR>';

echo 
'<TR>';
echo 
'<TD>Esta es la imagen 2</TD>';
echo 
'<TD>'.tn_create('imagen2.jpg',50,50).'</TD>';
echo 
'</TR>';

echo 
'</TABLE>'

?>
Pero eso no me funciona, algun craneo me dá una mano.
Gracias.
  #4 (permalink)  
Antiguo 27/10/2004, 08:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ya te comenté .. la llamada a esa función ha de ser en un script aparte como te mostré ..

NO hagas tu "requiere()" ahí en ese HTML sino como te mencioné . .con el tag de imagen y creando esa función con su minima llamada a esta en un script a parte, por ejemplo donde lo tienes ya pero incluyendo la llamada a la función.

Un saludo,
  #5 (permalink)  
Antiguo 27/10/2004, 12:33
Avatar de nublar
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Ubicación: Argentina - BsAs
Mensajes: 321
Antigüedad: 14 años, 1 mes
Puntos: 0
Funcionó

Cluster, analicé lo que me pasaste, hice algunos cambios y funcionó.

PAso los scrips por si a alguien le interesa:
Archivo: test.php

Código PHP:
<?php

echo '<TABLE>';

echo 
'<TR>';
echo 
'<TD>Esta es la imagen 1</TD>';
//echo '<TD>'.tn_create('imagen1.jpg',50,50).'</TD>';
echo '<TD><img src="tn_create.php?image=imagen1.jpg"></TD>';
echo 
'</TR>';


echo 
'<TR>';
echo 
'<TD>Esta es la imagen 1</TD>';
//echo '<TD>'.tn_create('imagen1.jpg',50,50).'</TD>';
echo '<TD><img src="func_tn_create.php?image=imagen2.jpg"></TD>';
echo 
'</TR>';


echo 
'</TABLE>';


?>



Archivo: create_tn.php
Código PHP:
<?php
$image
=$HTTP_GET_VARS['image'];
$max_width=80;
$max_height=60;

//Tomo las dimensiones de la imagen original
$size GetImageSize($image);
$width $size[0];
$height $size[1];

//Calculo el ratio
$x_ratio $max_width $width;
$y_ratio $max_height $height;

//Si la imagen original supera el tamaño del tn, calculo $tn_width y $tn_eight--

if ( ($width <= $max_width) && ($height <= $max_height) )
{
   
$tn_width $width;
   
$tn_height $height;
}
else if ((
$x_ratio $height) < $max_height)
{
   
$tn_height ceil($x_ratio $height);
   
$tn_width $max_width;
}
else
{
   
$tn_width ceil($y_ratio $width);
   
$tn_height $max_height;
}
//------------------------------------------------------------------------

$src ImageCreateFromJpeg($image);//Crea una imagen temporal en el servidor
$dst ImageCreate($tn_width,$tn_height); //Crea una imagen en blanco del tamaño del tn

//Copio la imagen temporal dentro de la imagen destino, adaptando el tamaño
ImageCopyResized($dst$src0000,$tn_width,$tn_height,$width,$height);
//Creo directamente una salida para el navegador
header('Content-type: image/jpeg');
ImageJpeg($dstnull, -1);

//Destruyo las imagenes temporales
ImageDestroy($src);
ImageDestroy($dst);

?>
Bueno esto funciona joya.
Lo único que no me termina de cerrar, es por que el anterior método anterior de declararlo en el mismo archivo como una funcion con el método require, no funcionaba.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.