Foros del Web » Programando para Internet » PHP »

Vista de imágen "personalizada"

Estas en el tema de Vista de imágen "personalizada" en el foro de PHP en Foros del Web. Hola ^^. Bueno resulta que he visto en algunas Webs donde ponían imágenes en sus noticias o demás, y como al pinchar en los enlaces ...
  #1 (permalink)  
Antiguo 21/11/2005, 11:59
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Vista de imágen "personalizada"

Hola ^^. Bueno resulta que he visto en algunas Webs donde ponían imágenes en sus noticias o demás, y como al pinchar en los enlaces para ver las noticias no te llevaba simplemente a una pagina en blanco donde se cargaba la pagina, es decir, a la direccion donde estaba colgada la imágen, sino que llevaba a una especie de "Vista de imágen" donde quedaba mucho mejor puesta la imágen y donde además se redimensionaba al tamaño de tu pantalla, pudiendola poner también a tamaño real.

He estado intentandolo hacer pero no se ni por donde cojerlo X_X ¿Podrían ayudarme un poco porfavor?

Si no saben lo que digo, por ejemplo entren a esta pagina y mas o menos por el final de ella veran unas imagenes pequeñas en una noticia, que al pinchar en ellas llevaran a la "Vista de imagen" que les digo ^^.

http://www.kh-2.net

Muchas gracias por adelantado ^^.

Atte. Alviker
  #2 (permalink)  
Antiguo 21/11/2005, 12:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas .. el "previo" de esa imagen lo lanza un script PHP
http://www.kh-2.net/image.php?image=...passionsc1.png

En principio podría ser algo tipo
Código PHP:
<html>
<head>
</head>
<body>
<img src="<? echo $_GET['image'?>">
</body>
</html>
Y lo usas como el ejemplo .. Ahí adorna todo el HTML que gustes para tu página individual que presenta esa imagen. EL "truco" está en pasarle por el URL el URL (valga la rebundancia) de la imagen ...

Por supuesto podría ser más complejo el tema creando un thumbnail o automáticamente colocando ese borde que tiene la imagen .. u otros detalles (marcas de aguar ..etc .. etc ..).

Un saludo,
  #3 (permalink)  
Antiguo 21/11/2005, 12:48
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Segun parece todas las imagenes llevan a la misma pagina (image.php), pero pasandoles una variable (image) que por lo visto contiene la ruta de la imagen en grande. Asi que lo mas seguro es que en la pagina image.php simplemente tenga una etiqueta img, con el atributo src igualado a la variable que recibe...
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #4 (permalink)  
Antiguo 21/11/2005, 14:29
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Wuo muchisimas gracias!!! ^^ Lo he conseguido hacer muy gracias a ustedes, muchas gracias de verdad!!! ^^

Ahora lo unico que no se hacer es lo de redimensionar la imagen. Por ejemplo como esto:

http://www.kh-2.net/image.php?image=...ges/famit1.jpg

Ahi esa imagen se redimensiona, y si le das a un link que hay abajo del todo de pone el tamaño original. ¿Como podria hacer eso mas o menos? Muchisimas gracias por adelantado ^^.

Un saludo.

Atte. Alviker
  #5 (permalink)  
Antiguo 22/11/2005, 01:05
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Cita:
Iniciado por Alviker
Ahi esa imagen se redimensiona, y si le das a un link que hay abajo del todo de pone el tamaño original.
Me juego lo que sea a que lo hay son dos imagenes, una pequeña y una grande. Si no fijate en la ruta de cada una de ellas:

- La pequeña tiene esta ruta: http://www.kh-2.net/newimages/11-20-05/famit1.gif
- La grande esta otra: http://www.kh-2.net/news/data/upimages/famit1.jpg
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #6 (permalink)  
Antiguo 22/11/2005, 08:15
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Mmm... Es verdad, no me había dado cuenta... De todos modos, cuando le das al link para ver la imagen en el tamaño completo, no te lleva a la ruta de la otra imagen, sino que añade un codigo PHP a la ruta de la imagen ya cargada, algo asi como "?=resize1"... Mmm...

De todos modos, ¿ustedes sabrían como hacer un código para redimensionar imágenes? >.< Muchisimas gracias oskarL y a todos por adelantado ^^.

Un saludo.

Atte. Alviker
  #7 (permalink)  
Antiguo 22/11/2005, 08:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Alviker
Mmm... Es verdad, no me había dado cuenta... De todos modos, cuando le das al link para ver la imagen en el tamaño completo, no te lleva a la ruta de la otra imagen, sino que añade un codigo PHP a la ruta de la imagen ya cargada, algo asi como "?=resize1"... Mmm...

De todos modos, ¿ustedes sabrían como hacer un código para redimensionar imágenes? >.< Muchisimas gracias oskarL y a todos por adelantado ^^.

Un saludo.

Atte. Alviker
Revisa en las FAQ's del foro PHP o busca en el por el término:

Thumbnail .. veras muchos ejemplos.

Un saludo,
  #8 (permalink)  
Antiguo 22/11/2005, 12:35
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchas gracias Clustes, yo esque busque por "redemiensionar" o cosas asi y no encontraba nada :( Muchas gracias, pero tengo varias dudas. He mirado estos FAQ's

http://www.forosdelweb.com/showthrea...620#post282620

http://www.forosdelweb.com/showpost....&postcount=127

Parece ser que necesito una libreria GD o algo asi, pero, ¿que es eso? ¿Como lo pongo o se que lo tengo? Oo ¿Hay otra manera mas facil o algo? Mmmm...

Y por otro lado, donde quiero que aparezcan mis imágenes redimensionadas ya hay un código que genera la imágen automaticamente (como podran ver post mas arriba), ¿aun asi puedo hacerlo verdad? Y otra cosa, yo no quiero que se redimensionen todas las imagenes, solos las que ocupen mas de ciertos pixeles.

Asi pues, ¿que debo hacer? :( Muchas gracias a todos ^^.

Atte. Alviker
  #9 (permalink)  
Antiguo 22/11/2005, 12:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las librerias GD son extensiones de PHP que debes tener instaladas en tu servidor para poder usarlas.

Verifica si dispones de ellas haciendo un:
Código PHP:
<?
phpinfo
();
?>
Ahí veras información referente a PHP .. y si dispones de soporte GD veras un bloque de información dedicado a el (con la versión que dispones ..etc).

Cita:
Parece ser que necesito una libreria GD o algo asi, pero, ¿que es eso? ¿Como lo pongo o se que lo tengo? Oo ¿Hay otra manera mas facil o algo? Mmmm...
Si, .. podría ser jugar con el ancho y alto de las propiedades de tu tag HTML de imagen (<img src .....>) pero eso no es un "thumbnail" de "verdad" como los que generas con GD. Eso sólo ajustaría lo que ves en el navegador pero la imagen estaría en su peso completo y tamaño originalmente, ademas que la calidad baja si hay mucha diferencia entre original y thumbanil a crear.

Cita:
Y por otro lado, donde quiero que aparezcan mis imágenes redimensionadas ya hay un código que genera la imágen automaticamente (como podran ver post mas arriba), ¿aun asi puedo hacerlo verdad? Y otra cosa, yo no quiero que se redimensionen todas las imagenes, solos las que ocupen mas de ciertos pixeles.
Bueno .. eso es parte de la lógica que implementes .. ya tienes ahí claro que lo primero ha realizar es medir la imagen (de ancho/largo) y a partir de ahí decidir si corresponde aplicar las funciones "GD" para hacer el thumbnail o entregar la imagen directamente sin más proceso por médio.


Un saludo,
  #10 (permalink)  
Antiguo 22/11/2005, 13:07
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchisimas gracias Cluster ^^. Voy ha intentar hacerlo ahora mismo ^^. Muchas gracias de verdad, has sido muy amable ;).

Lo unico que lo ultimo que me dijiste no lo entendi >.< ¿Entonces si lo hago con la forma de la DG esa solo se me redimensionarian las que sean demasiado grandes no?

Muchas gracias.

Atte. Alviker
  #11 (permalink)  
Antiguo 22/11/2005, 13:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Lo unico que lo ultimo que me dijiste no lo entendi >.< ¿Entonces si lo hago con la forma de la DG esa solo se me redimensionarian las que sean demasiado grandes no?
El proceso en su base es el mismo:

* Se lee tu imagen:
$img=imagecreatefromXXXX($path_de_la_imagen);
* Se aplican las funciones necesarias que te daran el ancho y largo de la imagen:
imagesx($img) e imagesy($img)

Con ese dato .. si corresponde sigues con el proceso para generar tu nueva imagen de ciertas dimensiones (mas pequeño que el original) que sería el "thumbnail". Si cumple tus requisitos para no hacer nada sobre ella:

* (sea tu imagen procesada o no ..) Se entrega al buffer de salida (previa definición cabeceras HTTP que definen el tipo de archivo generado):

header ("Content-type: .......");
imageXXX($img);

Más o menos ese es el proceder, ..

Un saludo,
  #12 (permalink)  
Antiguo 22/11/2005, 13:26
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Bueno, he mirado y parece que tengo GD 2 :D Asi que no problemo. Pero por otro lado, en el FAQ que estoy mirando y quiero probar, lo que hace es mantener una altura de la imagen fija y modificar el ancho, pero yo lo quiero justo al reves. ¿COmo hago ese cambio? ^^U

Muchas gracias por adelantado, el FAQ es este:

http://www.forosdelweb.com/showthrea...620#post282620

Saludos ^^.

ATte. Alviker
  #13 (permalink)  
Antiguo 22/11/2005, 13:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Todo el cálculo lo hace en:
Código PHP:
 // intentamos escalar la imagen original a la medida que nos interesa 
          
$ratio = ($datos[1] / $altura); 
          
$anchura round($datos[0] / $ratio); 
Aplica el cálculo al otro factor .. De todas formas, la FAQ que mencionas toma un directorio completo, creo que hay otras funciones dando vuelvas por el foro que hacen sólo el thumbnail individual por imagen .. ???

Un saludo,
  #14 (permalink)  
Antiguo 22/11/2005, 13:57
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchas gracias por tuda tu ayuda Cluster ^^. Siento ser tan pesado, pero esque lo he hecho y no me ha funcionado u.u A saber que habre hecho mal.

A ver, en mi archivo imagen.php, he metido por ahi este código

Código PHP:
<?
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] / $anchura);
          
$altura 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);
     }

?>
Y luego, un poco mas abajo, donde esta el codigo para poner la imágen tengo puesto esto:

Código PHP:
<img src="<? echo $_GET['ver'$thumbjpeg($imagen680); ?>">
Y miren lo que me sale :(:

http://www.ffultimate.com/imagen.php..._deg1_2111.jpg

Que ocurre? Pueden ayudarme porfavor? Muchas gracias.

Atte. Alviker
  #15 (permalink)  
Antiguo 22/11/2005, 14:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Esto no es correcto:
<img src="<? echo $_GET['ver'] $thumbjpeg($imagen, 680); ?>">
(no tiene sentido ..)

En el tag de imagen es donde debes llamar a tu script PHP que genera el thumbnail.

Ese script sólo debe tener la llamada a esa función:
Código PHP:
<?
// la función ...

$altura="400";
thumbjpeg($_GET['ver'],$altura);
?>
Y ese script lo llamas desde tu pagina HTML o donde gustes con un tag HTML de imagen:
Código PHP:
<img src="imagen.php?ver=noticias/imagen.jpg"
Si no te funciona ... primero prueba el script de forma aislada:
http://www.tal.tal/imagen.php?ver=noticias/imagen.jpg

De todas formas . .hay un detalle .. ese script genera una imagen como archivo físico en el servidor:
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb .$nombre);

No uses el 2° parámetro de esa función y usa antes la definición del "Content-type" para el tipo de imagen que generas (JPEG):

Código PHP:
header ("Content-type: image/jpeg");
imagejpeg($thumb); 
Revisa los ejemplos de:
www.php.net/gd

Un saludo,
  #16 (permalink)  
Antiguo 22/11/2005, 15:10
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchas gracias por toda tu ayuda Cluster. Y lo siento muchisimo, debes de estar aburrido, pero es que sigue sin salirme >.<

Ahora tengo puestos estos codigos:

Código PHP:
<?
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.
          
header ("Content-type: image/jpeg");
          
imagejpeg($thumb);
          
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
     }

?>
Y este:

Código PHP:
<?
// la función ...

$anchura="680";
thumbjpeg($_GET['ver'],$anchura);
?>
Y me sale esto, es muy raro! O.O:

http://www.ffultimate.com/imagen.php..._deg1_2111.jpg

Parece que hay errores en la linea de debajo de los de Content Type y demas, mmm... ¿Que puedo hacer? Muchas gracias Cluster de verdad, un saludo ^^.

Atte. Alviker
  #17 (permalink)  
Antiguo 23/11/2005, 01:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

No sé si es demasiado tarde, pero tengo un código que me funciona muy bien y lo puse en este otro mensaje: http://www.forosdelweb.com/f18/redimencionar-imagen-mas-pequena-236597/

Un ejemplo de las miniaturas se pueden ver en mi galería: http://www.sucaricatura.com/2005/

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #18 (permalink)  
Antiguo 23/11/2005, 08:14
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchas gracias caricatos por ayudarme ^^. Pero es que hay un problema. Yo quiero que se redimensionen imágenes que YA se generan y cargan automáticamente llamadas por una variable, es decir, no ir haciendo Thumbnails de imágenes determinadas.

Y por otro lado, me gustaria que sería compatible con JPEG y GIF :(

Así pues, creo que puedo ustar este FAQ:

http://www.forosdelweb.com/f18/faqs-php-530600-post282620/

Pero ya lo he intentado hacer y nada u.u Podrian decir donde he de colocar ese codigo dentro de mi archivo imgen.php???

Tengo este archivo en la raiz de mi web, y las imagenes las cargo dentro de la carpeta /noticias. Además, el codigo que uso para generar las imágenes automaticamente es:

Código PHP:
<img src="<? echo $_GET['ver'?>">
COn estos datos, ¿donde debo colocar los codigos de ese FAQ? :( Saludos y muchisimas gracias ^^.

Atte. Alviker
  #19 (permalink)  
Antiguo 23/11/2005, 08:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
CUando decía:

<?
// la función ...

$anchura="680";
thumbjpeg($_GET['ver'],$anchura);
?>

eso es tu imagen.php .. y debes poner ahí el código de la función thumbjpeg() y llamarlo como te puse el ejemplo del tag de imagen ..

Eso sería para crear tus thumbanils . .si no quieres crear tumbnails o sólo en ciertas condicones usa más lógica (me refiero a "if()" y demás según quieras hacer tu thubmnail o no)..

Lamento no ser más explicito .. sigue las indicaciones de caricatos.

Un saludo,
  #20 (permalink)  
Antiguo 23/11/2005, 10:12
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchas gracias por ayudarme Cluster, ya voy comprendiendo mucho mejor ^^. Pero ya puse el codigo y sigue sin irme, aunque parece que hay menos errores ^^U.

Tengo puesto este codigo:

Código PHP:
<?
function thumbjpeg($imagen,$anchura) {
     
// 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] / $anchura);
          
$altura 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);
     }
}

$anchura="680";
thumbjpeg($_GET['ver'],$anchura);
?>
No esta bien??? Que he hecho mal? :( Miren lo que sale:

http://www.ffultimate.com/imagen.php..._deg1_2111.jpg

Es que eso que me dijiste antes Cluster no lo entendi u.u Quizas me falta hacer algun cambio :( Creo que ya queda poco para que lo consiga, ayudenme porfavor :(

Atte. Alviker
  #21 (permalink)  
Antiguo 23/11/2005, 10:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Fijate bien en el código que estás usando ..

Ese código crea directorios con el fin (el fin/objetivo original) de crear en ese directorio "thumbs/" las imagenes miniatura de las originales. En este caso estás creando "dinámicamente" (o lo vas hacer) cada imagen miniatura cuando la pidas (por el URL que usas llamando al script) .. así que tendrás que eliminar todo ese código:

Código PHP:
// 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); 
Y ajustar las rutas que ahí se mencionan que seguro NO coinciden con las tuyas.!!!

buff: ahora veo que NO usas header() como más arriba te indiqué .. Ya no sé que hacer ...

Un saludo,

PD: escogistes el camino "largo" .. podrías haber buscado otra función que haga el thumbnail -sólo- de una imagen y "dinámica" (que use header(....))
  #22 (permalink)  
Antiguo 23/11/2005, 10:49
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Ya he hecho todo lo que has dicho Cluster, y parece que el codigo que hay incorrecto es:

imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb .$nombre);

En general, el codigo que tengo puesto es:

Código PHP:
<?
function thumbjpeg($imagen,$anchura) {
     
// 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)."/";

     
// 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] / $anchura);
          
$altura 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);
     }
}

$anchura="680";
thumbjpeg($_GET['ver'],$anchura);
?>
Porfavor, que diantres debo hacer :( :( No lo entiendo. Siento muchisimo las molestias Cluster :(. Muchisimas gracias por tu atencion.

Atte. Alviker

P.D: Por cierto, me sale esto:

http://www.ffultimate.com/imagen.php..._deg1_2111.jpg
  #23 (permalink)  
Antiguo 23/11/2005, 11:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Vamos a ver (para aclararnos) ..

Tu quieres generar esas imagenes "pequeñas" como archivos y dejarlo en tu servidor para usarlo en otra ocasión? .. O sólo quieres que en función de una imagen dada a su tamaño original cuando la pidas se redimensione para verla al tamaño que necesites?

Por qué . .esa son las DOS! técnicas que hay para hacer el proceso. Lo típico es generar "al vuelo" los thumbanils de las imagenes .. así ahorras espacio en tu servidor vs a un poco más de proceso cuando se piden.

Aclarate con eso, para no dar más vueltas a ese código que usas pero creo que intentar modificarlo para hacer otra cosa, mas vale la pena buscar OTRO .. por lo menos para que lo pruebes ya que no te aclaras mucho con lo que hacen o no hacen.

PD: Pega aquí los mensajes de error que obtengas .. (es más rápido).

Un saludo,
  #24 (permalink)  
Antiguo 23/11/2005, 12:24
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Pues esque ya no se ni lo que quiero @.@ Pero vamos, yo creo que la segunda opcion que tu has dicho, para ahorrar espacio en mi server es la mejor, asi que quiero esa ^^U.

Ahora bien, ¿como lo hago entonces? T.T

Muchisimas gracias Cluster. Perdona las molesitas de verdad u.u

Atte. Alviker
  #25 (permalink)  
Antiguo 23/11/2005, 13:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok .. entonces una vez aclarado todo.

Podrías usar esta excelente classe para trabajar con imagenes. No la uses si no la entiendes (por qué en un principio puede ser compleja .. pero tenla presente cuando tengas algo más de práctica con el tema).

http://phpthumb.sourceforge.net/

Pero algo más simple (con tutorial):
http://www.maestrosdelweb.org/editorial/thumbphp/
(es prácticamente todo lo que he intentado explicarte por mi parte en este mensaje)

Un saludo,
  #26 (permalink)  
Antiguo 24/11/2005, 08:30
 
Fecha de Ingreso: enero-2005
Ubicación: Madrid
Mensajes: 187
Antigüedad: 19 años, 3 meses
Puntos: 0
Muchisimas gracias Cluster, pero no lo entiendo, no me funciona! u.u Me salen errores y caracteres muy raros que ocupan muchisimas lineas u.u Ya no se que hacer...

Solo quiero que una imagen que ya se carga automaticamente mediante "?ver=*noticias/.jpg" se me redomensione a un ancho que yo le diga y luego el alto que se haga solo proporcional... u.u

Perdona por las molestias :(

Atte. ALviker
  #27 (permalink)  
Antiguo 24/11/2005, 08:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Alviker ..

Yo ya no sé que hacer .. el tutorial que te puse es eso mismo .. paso a paso un ejemplo.

Volvemos a lo mismo .. indica el código que usastes, como lo usas .. los problemas que tienes si quieres ayuda. Casi te recomendaría iniciar un nuevo tema .. por qué este ya está muy "corrupto" con soluciones que no eran las que necesitas.

Un saludo,
  #28 (permalink)  
Antiguo 24/11/2005, 09:01
Avatar de macabro  
Fecha de Ingreso: enero-2003
Ubicación: venus >> ((_\
Mensajes: 254
Antigüedad: 21 años, 2 meses
Puntos: 1
Hey creo que esto es lo que quieres.
salvalo como fotochico.php
Código PHP:
<?php

header
('Content-type: image/jpeg');

list(
$width$height) = getimagesize($imgfile);

$newwidth =  $ancho;
$newheight $alto;

$thumb ImageCreateTrueColor($newwidth,$newheight);
$source imagecreatefromjpeg($imgfile);

imagecopyresized($thumb$source0000$newwidth$newheight$width$height);

imagejpeg($thumb);
?>
Ahora donde quieres reducir la imagen haces este pequeno codigo
Código PHP:

 $imgfile
="images/photos/$img";
$newwidth =  200;
$newheight 200;

$size getimagesize("$imgfile");
$height $size[1];
$width $size[0];
       
        if (
$height $newheight && $width $newwidth ) {
    

echo 
"<a href='images/photos/$img' target='_blank'><img src='FotoChico.php?imgfile=images/photos/$img&alto=210&ancho=280' border='0' align='left'></a>";

         } else{
             echo 
"<img src='images/photos/$img' border='0' align='left'>"
             } 
espero te sirva de algo
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 03:22.