Foros del Web » Programando para Internet » PHP »

Classe WideImage para manipular imagenes

Estas en el tema de Classe WideImage para manipular imagenes en el foro de PHP en Foros del Web. Hola a todos! Estoy intentando redimensionar imagenes dinamicamente con WideImage, entre al sitio de ellos vi la documentacion y los ejemplos pero tengo problemas para ...
  #1 (permalink)  
Antiguo 20/04/2011, 12:31
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 9 meses
Puntos: 7
Classe WideImage para manipular imagenes

Hola a todos!

Estoy intentando redimensionar imagenes dinamicamente con WideImage, entre al sitio de ellos vi la documentacion y los ejemplos pero tengo problemas para aplicarlo en mi sitio web.

Si alguien ya trabajo con WideImage le pido ayuda.

Lo que pasa es que consigo hacer funcionar ejemplos simples y aislados como este:

Archivo prueba_wideimage.php
Código PHP:

include ('wideimage/WideImage.php');

$image WideImage::load('imagenes/Desenvolvimiento_web.png');

$image $image->resize(10080);

$image->output('jpg'90); 
Ejecuto ese archivo y me muestra la imagen redimensionada, todo bien......ahora no consigo aplicar esto a la realidad de mi sitio


En mi sitio tengo la siguiente estructura:

Una página Index que carga el contenido a traves de includes:

Index.php
Código PHP:
Doctype .....etc
<html>
<
head>
<
body>

include 
"includes/encabezado.inc.php";
include 
"includes/contenido.inc.php";
include 
"includes/pie.inc.php";

</
body>
</
head>
</
html
Bueno, en contenido.inc.php es donde quiero cargar las imágenes dinamicamente:

contenido.inc.php
Código PHP:

//contenido resumido
.........
<?php
$sql 
mysql_query("SELECT * FROM portfolio WHERE id_trabajos = '$id_job'");
      while(
$linea mysql_fetch_array($sql)){
          
$link_img = isset($linea['link']) ? $linea['link'] : null;
                    
        
?> 

ACA QUIERO QUE SE CARGUEN LAS IMAGENES SEGUN EL LINK QUE 
ME PASA LA CONSULTA EN LA VARIABLE $link_img
  
  <?php 
 
}
}
?>

...........................
Ya probe de todo. En realidad no consigo hacer funcionar el WideImage en ninguna parte del archivo contenido.inc.php, ni siquiera pasandole valores fijos.

Alguien sabe como hacerlo?

Ya vi en internet que otras personas tienen esta misma duda....pero nunca encontre una explicación clara.

Gracias!
  #2 (permalink)  
Antiguo 20/04/2011, 14:41
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Classe WideImage para manipular imagenes

Holas,

El script que muestras, digamos que se llame generaimagen.php:

Código PHP:
Ver original
  1. include ('wideimage/WideImage.php');
  2.  
  3. $image = WideImage::load('imagenes/Desenvolvimiento_web.png');
  4.  
  5. $image = $image->resize(100, 80);
  6.  
  7. $image->output('jpg', 90);


Tiene salida de una imagen jpg, es decir header("image/jpeg"), entonces lo que podrias usar es el tag html del img para la salida de la image algo como:
Código PHP:
Ver original
  1. <img src='<?=generaimagen.php?>' />

Saludos
Gildus
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 20/04/2011, 15:00
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 9 meses
Puntos: 7
Respuesta: Classe WideImage para manipular imagenes

Hola Gildus, gracias por la respuesta!

Solo dime una cosa: donde deberia poner ese header("Content-type: image/jpeg"); ?

En el index.php, en contenido.inc.php o en genera_imagen.php?
Dentro del head o no importa la posición dentro del archivo?

Te pregunto porque estoy provando y no me funciona.

Gracias
  #4 (permalink)  
Antiguo 20/04/2011, 16:59
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Classe WideImage para manipular imagenes

por ejemplo al inicio del archivo genera_imagen.php.

Como esta resultando tu script por ejemplo?
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 20/04/2011, 17:44
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 9 meses
Puntos: 7
Respuesta: Classe WideImage para manipular imagenes

Bueno, el código quedaria asi:

contenido.inc.php (es donde esta el contenido e intento cargar la imagen)
Código PHP:
.........

<img src="<?php generaimagen.php ?>" alt="hola" title="que tal" />

........
y esta el archivo donde se genera la imagen, vamos a darle el nombre que tu dijiste:

generaimagen.php
Código PHP:
<?php 
header
("Content-type: image/jpeg");

include (
'wideimage/WideImage.php');

$image WideImage::load('imagens/Desenvolvimento_web.png');

$image $image->resize(10080);

$image->output('jpg'90);
Asi como esta, no funciona....

Tenes idea que puede ser.......se ve algun error grosero desde ahi?

  #6 (permalink)  
Antiguo 20/04/2011, 20:02
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Classe WideImage para manipular imagenes

Disculpa seria asi:

Código PHP:
Ver original
  1. .........
  2. <img src="generaimagen.php" alt="hola" title="que tal" />
  3. ........

Saludos
Gildus
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 20/04/2011, 21:28
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 9 meses
Puntos: 7
Respuesta: Classe WideImage para manipular imagenes

Bien!!

Funciono!, por fin.....eran pequeños errores que cometia siempre, pero errores fatales.....es como dicen:"el que no sabe es como el que no ve", pero bueno de a poco voy aprendiendo....Muchas gracias Gildus!!

Una última cosa, sin querer abusar de tu generosidad......tienes alguna sugerencia para tornar esto dinámico....osea desde el archivo que tengo el contenido
"contenido.inc.php" hago consultas a la base de datos donde obtengo los nombres de las imágenes.

Cual seria la mejor opción para pasarle estos datos a generarimagen.php para que me devuelva los thumbnails.

Gracias!
  #8 (permalink)  
Antiguo 21/04/2011, 12:04
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 21 años, 4 meses
Puntos: 105
Respuesta: Classe WideImage para manipular imagenes

En tu archivo contenido_inc.php, seria mas o menos asi:

Código PHP:
Ver original
  1. <?php
  2. $sql = mysql_query("SELECT * FROM portfolio WHERE id_trabajos = '$id_job'");
  3. while($linea = mysql_fetch_array($sql)){
  4.       if(!empty($linea['nombre_del_archivo']))
  5.       {   $nombre_archivo_img = $linea['nombre_del_archivo'];
  6.            echo "<img src='generaimagen.php?img=".$nombre_archivo_img."' />";
  7.       }
  8.      
  9. }
  10.  
  11. ?
>

Alli falaria confirmar si lo que tienes en tu tabla son los nombres con la ruta del archivo o solo los nombres, eso ya tu los confirmas.

Saludos
Gildus
__________________
.: Gildus :.
  #9 (permalink)  
Antiguo 21/04/2011, 20:43
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 9 meses
Puntos: 7
Respuesta: Classe WideImage para manipular imagenes

Hola Gildus

Si, mi tabla tiene solamente los nombres de los archivos, tendria que sumarle la ruta.

Siguiendo el ejemplo que tu escribiste en el último mensaje del archivo contenido.inc.php, lo que no estoy consiguiendo hacer es pasarle el parametro "img" al archivo generaimagen.php.

Yo estaba intentando hacerlo asi:

Código PHP:
 
header
("Content-type: image/jpeg");

$nombre_archivo = ( isset( $_GET['img'] )) ? $_GET['img'] : null;

include (
'wideimage/WideImage.php');

$image WideImage::load('imagens/portfolio/$nombre_archivo');

$image $image->resize(10080);

$image->output('jpg'90); 
Pero no funciona y como no devuelve ningún mensaje de error, no se que hacer.

Que estoy haciendo mal?

Saludos
  #10 (permalink)  
Antiguo 21/04/2011, 20:52
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: Classe WideImage para manipular imagenes

Código PHP:
Ver original
  1. // Mal, por querer incluir variables entre comillas sencillas:
  2. $image = WideImage::load('imagens/portfolio/$nombre_archivo');
  3.  
  4. // Bien, concatenando:
  5. $image = WideImage::load('imagens/portfolio/' . $nombre_archivo);
  6.  
  7. // Bien, encerrando entre comillas dobles, para que PHP interprete la variable:
  8. $image = WideImage::load("imagens/portfolio/$nombre_archivo");
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 21/04/2011, 22:57
Avatar de Garot  
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 9 meses
Puntos: 7
Respuesta: Classe WideImage para manipular imagenes

Gracias Triby!

Ahora si funciono, eso nada mas me faltaba.....

Como dije antes, eran pequeños errores que tenia, que sin muchos conocimientos y sin ayuda son difíciles de ver.

Muchas gracias a todos, estoy seguro que esto le va a servir a otras personas.

Saludos

Etiquetas: classe, imagenes, manipular
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:14.