Foros del Web » Programando para Internet » PHP »

PHP, Creacion de Thumbnails y GD

Estas en el tema de PHP, Creacion de Thumbnails y GD en el foro de PHP en Foros del Web. De nuevo con el tema de los thumbnails. Este es el codigo que he creado ahora: Código PHP:   $img  =  "01.jpg" ;    $image  =  ...
  #1 (permalink)  
Antiguo 22/05/2004, 08:08
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
PHP, Creacion de Thumbnails y GD

De nuevo con el tema de los thumbnails. Este es el codigo que he creado ahora:
Código PHP:
  $img "01.jpg";
  
$image imagecreatefromjpeg($img);
  
$img_w imagesx($image);
  
$img_h imagesy($image);
  
$new_img_source imagecreate($img_w,$img_h);
  
$new_img_w 168;
  
$new_img_h 126;

  
imagecopyresized($new_img_source$image0000$img_w$img_h$new_img_w$new_img_h);

  
header("Content-type: image/jpeg");
  
imagejpeg($new_img_source); 
ahora no me da errores de programacion ni sintaxis ni nada sino que lo que me manda al navegador es esto:
Cita:
ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!222222222222222222222222222222222222222222222 22222ÿÀX "ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3 br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖ× ØÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvw xyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓ ÔÕÖ×ØÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ô¾ôb:ÒdVǘ¥Å! Z¹¥ê)éÙ ”c4zQ@ Ç4½)9ëFsE†;„RsKÚâ—Ú3C`.9¤<ÑN ‘IÞ—4P€3Š6âK@ ïE/qEÀ1EPÓ@Å@X\Ðh¢€ÅZ£¤ÁÝNÅŠ;ÒÒq@!hE Ð)2(̓֗Š)€ÓKÖŠAHðh4½³Eâ½è£4 1KŒPÅ!4]ݱIEX`hïAâ›ÎhBhÑE&9£o|Ò÷¥ ˜¤ÅŠ/AIÖ”Óh/J\ñHhí@Ä¥Ô£$Rb„Š(¤4¹©9£§JS@ N€PI( âá¤4 9¥ÍÐæŽ(í@¢ŒSÄô„Rš( ÐÜRŠ( &›GZZ(éGjCš)9 bQÞ F1J)OJ@&i éx¦1¼Òsš2iE0 ip(¤ ¢ƒH  QÐÒÒ)"šhâƒí@XZ)(¤ –ŠR))€ àQšLQ@¤¥¢€Òõu£™íE_.3ÒŠi3Aé@ Bç4ƒš(Í)éH8f”PiE( Òf—4b Žô9 а„Òö¥Æi:PbƒÅ/”\µ(¤¥ ŠLóJ)½èHæÅ.2(Æ( 94½é1E8ÒbŠ(ÅŠ(Ù¤4”™ ,—4˜Í¡ƒ@}i/µPF(¥ éBóKÅ“RLóKLm_ÓGZqàÑœQÖŒb;ÑÚ’—µ&hÆiqIÒ€p 1A8£ni QïKAàR{Ó‡_-!æ@ J0zÒb“´ƒ_-ñEÀ^)ŠQȤԇ aœÒ¯zhö§Š¤ïAé@4… ô£šN´À(£½PE.)Zhµ(÷ (‡¯@XJ1òÒÒŒí¤):RæŽ 'QHE)£ÆfŽœÒ Ñ׊æŒÓx¹ÇJL`ÒÐqz.):Ræô¤)q@éFhJJ^MÀ bRbœ)0hh Š™¥ç½À Ð3KHã4t œSI¦iUI RXàTÊ€`ãš@*©QƒKEV±IQABE 4¹Í#1 ŒQšZ;Rc½(é@€ ;Ñ@1ˆzÒŠ;ÑšêñNiZ6ŠRi¤ÒÐÄ&i:Ò‘E$1GgœQI@ ŠAJ …!¥£J#¸¤š`(RR“IŠ1{Põ œRc&”QÞ€ 4è"€”RƒHh`ƒ“E.1B"RÐhŽø¦Ž)ݳ@ E7f–=©i;bÐ1GZZ@sIÞ€)i¥ƒ_-!¤ ÍÍ¥í@ ŒÑEô¤êJE Ò’šP)…‚Š^”™¡\ÑŒóM<Ò@ Jx”Ð9£ zP(éIÖ‹§¥âAé@Ä¥Æ))4! QF) £4QŽi€c4šFÑÒ€F7½_-!Ši)1IÞ˜ ÒgŒQŠ8PM%À)€Ñ@9 sFhÔZApŽzÐh¤§pBcÒ”t¥ŒsEÀZO¥.i:R§ƒG'¥) p(cii£'¥1 Ïz\ÒšCÒšE)4 …RñIÆhc4ÞiÝ:PqÚ‹€ ŒR´œÒÒ(¥¢˜!1J0hÍ78¥`i¸={RÒÀ#Š`#Jo4OTÉç4®1IÁ Ç0tŠ)¤8 ¢Š)”QE´QHM…!éE!Ô¼~4P0¥¤æŠ%-Pš(À£¥¤¥S …!ç¥-€—_Q` (>Ô´€ZJ æŠ`ÄïKF)3ÏZH¦ëJÍŽ†¢É,h¸ NM*©9â…\㊕T/JKP Ð (¢¬´¬QE (¢€ Z(¡ŠáE„Ô’!£ AES¢Š(¢Š(¢Š((¤¥À( š3@QHŠJ\SïE š)(¢€ )sŠJ(¥£¥%Q@¸¤ ¤¢— Š ¢Œ QKLµ”s@ š3E%!ëKIJ(¥¢’€¸´‡¥(¤4£¥”†€¸QKE%QH6 Z( £´,@¤´Ä£
alguien me podría explicar que cosa es esto. Ya en realidad no se que hacer para generar los thumbnails de las imagenes grandes.

Salu2
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 22/05/2004, 08:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Ese es el contenido binario de tu imagen. ¿Seguro que no has enviado ninguna salida antes de la cabecera content-type? Ya sabes, ni HTML, ni echo, ni espacios.

Es que el problema parece que el navegador no se esta enterando de que es una imagen (o binario).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 22/05/2004, 08:43
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Pues sip

josemi lo que tengo pensado hacer con esto es una función para que me retorne un thumbnail algo asi como una galeria de imagenes .Esto es una función que en realidad es esta:
Código PHP:
 function ThumbnailsCreate($img){
  
$image imagecreatefromjpeg($img);
  
$img_w imagesx($image);
  
$img_h imagesy($image);
  
$new_img_source imagecreate($img_w,$img_h);
  
$new_img_w 168;
  
$new_img_h 126;

  
imagecopyresized($new_img_source$image0000$img_w$img_h$new_img_w$new_img_h);

  
header("Content-type: image/jpeg");
  
imagejpeg($new_img_source);
 } 
ahora donde la llamo tiene todo este código delante:
Código PHP:
...
<td class="txt"><? ThumbnailsCreate($ftech['idimagen']);?></td>
...
no sabía si eso tenía algo que ver. De todas maneras poner ob_start() al inicio y ob_end_flush() al final no me resuelven ese problema ?

Salu2
__________________
Ing. Reynier Pérez Mira
  #4 (permalink)  
Antiguo 22/05/2004, 12:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
El problema es que no puedes meter el contenido del fichero en el HTML (no estoy seguro, creo que hay una forma pero no es lo normal).

Entonces lo que tienes que hacer es colocar un tag <img> que llame al script que genera solo un thumbnail:
Código PHP:
<img src="thumbnail.php?id=<?php echo $ftech['idimagen'];?>">
y en el script thumbnail.php llamas a la funcion.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 22/05/2004, 13:04
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Ya entendi

gracias josemi ya entendi lo que me dices
Salu2
__________________
Ing. Reynier Pérez Mira
  #6 (permalink)  
Antiguo 22/05/2004, 13:07
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
pero porque

No me redimensiona la imagen me la deja en su tamaño original, es decir, 800x600 y lo que quiero es ponerla en 300X200 por ejemplo.
¿cual es el problame?
Salu2
__________________
Ing. Reynier Pérez Mira
  #7 (permalink)  
Antiguo 22/05/2004, 14:35
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
imagecopyresized($new_img_source, $image, 0, 0, 0, 0, $img_w, $img_h, $new_img_w, $new_img_h);

eso es lo que tienes.... pero tienes al reves los parametros para las dimensiones:

imagecopyresized($new_img_source, $image, 0, 0, 0, 0, $new_img_w, $new_img_h,$img_w, $img_h);

debe ir en ese orden: ancho_nuevo, alto_nuevo,ancho_original,alto_original
__________________
El conocimiento es libre: Movimiento por la Devolución
  #8 (permalink)  
Antiguo 22/05/2004, 21:30
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Ahora si pero ...

Ahora si redimensiono pero me dejo el color de fondo de la imagen detras con los tamaños originales. Para explicarme mejor:
la imagen normal tiene fondo verde, ahroa cuando trato de redimensionarla todo ok. Me la pone a los tamaños que yo quiero pero me deja en el tamaño original de la imagen un fondo verde de 800x600 que es el tamaño original. Alguna idea de que puede ser?

Salu2
__________________
Ing. Reynier Pérez Mira
  #9 (permalink)  
Antiguo 22/05/2004, 22:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 1.583
Antigüedad: 20 años, 3 meses
Puntos: 13
perdon se me habia olvidado otro error que cometias:

esto que tienes asi:

$new_img_source = imagecreate($img_w,$img_h);
$new_img_w = 168;
$new_img_h = 126;

debe ir asi:

$new_img_w = 168;
$new_img_h = 126;
$new_img_source = imagecreate($new_img_w,$new_img_h);
__________________
El conocimiento es libre: Movimiento por la Devolución
  #10 (permalink)  
Antiguo 23/05/2004, 13:47
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Ahora si

Gracias a todos ya me funciona correctamente.
Salu2
__________________
Ing. Reynier Pérez Mira
  #11 (permalink)  
Antiguo 20/06/2004, 08:53
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Pregunta rebuscando encontre este mensaje

Cita:
Iniciado por josemi
El problema es que no puedes meter el contenido del fichero en el HTML (no estoy seguro, creo que hay una forma pero no es lo normal).
Querria saber cómo es esta manera. Tengo un servidor gratuito (yahoo) en el que meten contenido antes de la pagina, asi que aunque modifique el header, el contenido sigue siendo texto. ¿Cómo insertar una imagen en un documento directamente?

Gracias y saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #12 (permalink)  
Antiguo 21/06/2004, 07:10
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 derkenuke
Querria saber cómo es esta manera. Tengo un servidor gratuito (yahoo) en el que meten contenido antes de la pagina, asi que aunque modifique el header, el contenido sigue siendo texto. ¿Cómo insertar una imagen en un documento directamente?

Gracias y saludos.
En tu caso particular .. da igual como llames a tu archivo y envies tus cabeceras HTTP .. Tu servicio de hosting siempre va a lanzar su própia salida -antes- que las cabeceras HTTP que lanzes tu mismo

Ese código HTML (de su publicidad .. etc) que incrustra en todas tus páginas son los que van a ocasionar esos errores referentes a "header" si los usass = no hay solución (en tu caso particular cambia de servicio de hosting).

Un saludo,
  #13 (permalink)  
Antiguo 21/06/2004, 16:34
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 5 meses
Puntos: 45
Gracias, personalmente cambiaré o linkaré una pagina de otro servidor ; )
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 14:07.