elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Generar Imagen dinámica con GD para utilizar de placeholder (Solucionado)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Generar Imagen dinámica con GD para utilizar de placeholder (Solucionado)  (Leído 2,543 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Generar Imagen dinámica con GD para utilizar de placeholder (Solucionado)
« en: 27 Diciembre 2019, 12:47 pm »

Se me hace interesante esas paginas que ofrecen solo un servicio como el de imagen placeholder

Para las plantillas de diseño HTML esta muy bien:

Ejemplo:

Código:
https://placehold.it/70x70



Yo mismo implemente una imagen así pixeles random:

Código:
https://albertobsd.dev/random?format=img&w=70&h=70



Ahora estoy implementando el mismo código en otro sitio y me estoy dando de topes por que no esta funcionando :xD :xD :xD

Código
  1. <?php
  2. $h = 100;
  3. $w = 100;
  4. if(isset($_GET["w"]) && intval($_GET["w"]) > 0) {
  5. $w = intval($_GET["w"]);
  6. }
  7. if(isset($_GET["h"]) && intval($_GET["h"]) > 0) {
  8. $h = intval($_GET["h"]);
  9. }
  10. $im = imagecreate($w, $h);
  11. $gray = imagecolorallocate ($im , 50 , 50 , 50 );
  12. imagefill( $im ,$w , $h , $gray );
  13. header("Cache-Control: no-cache, no-store, must-revalidate");
  14. header("Pragma: no-cache");
  15. header("Expires: 0");
  16. header("Content-type: image/png");
  17. imagepng($im);
  18. ?>

El codigo anterior asi como el siguiente no me arroja imagen alguna, en teoría me debería de arrojar la imagen con fondo gris, peor no hace nada, ya intenten depurando con headers:

Código
  1. <?php
  2. $h = 100;
  3. $w = 100;
  4. if(isset($_GET["w"]) && intval($_GET["w"]) > 0) {
  5. $w = intval($_GET["w"]);
  6. }
  7. if(isset($_GET["h"]) && intval($_GET["h"]) > 0) {
  8. $h = intval($_GET["h"]);
  9. }
  10. $im = imagecreate($w, $h);
  11. $gray = imagecolorallocate ($im , 50 , 50 , 50 );
  12. $white = imagecolorallocate ($im , 255 , 255 , 255 );
  13. if(imagefill( $im ,$w , $h , $gray )) {
  14. header("Imagefill: OK");
  15. }
  16. header("Cache-Control: no-cache, no-store, must-revalidate");
  17. header("Pragma: no-cache");
  18. header("Expires: 0");
  19. header("Content-type: image/png");
  20. $tfile = tempnam("/tmp","FOO");
  21. if(imagepng($im,$tfile,0)) {
  22. header("Imagepng: OK");
  23. }
  24. if(imagedestroy($im)) {
  25. header("Imagedestroy: OK");
  26. }
  27. header("N: $tfile");
  28. header('Content-Length: ' . filesize($tfile));
  29. readfile($tfile);
  30. unlink($tfile);
  31. ?>

Y sigue sin hacer absolutamente nada, los headers de depuración están todos y el archivo se crea, intente omitiendo el unlink y haciendo file al archivo temporal desde el shell de linux y todo esta bien:

Código:
$ file /tmp/FOOxOdebm
/tmp/FOOxOdebm: PNG image data, 750 x 300, 1-bit colormap, non-interlaced

Headers desde el navegador:



Al final el error va a terminar siendo una tontería pero se me hace interesante que no arroje nada.

Saludos!


« Última modificación: 28 Diciembre 2019, 19:35 pm por AlbertoBSD » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Generar Imagen dinámica con GD para utilizar de placeholder
« Respuesta #1 en: 28 Diciembre 2019, 17:18 pm »

Código
  1. imagefill( $im ,$w , $h , $gray );

No debería ser:

Código
  1. imagefill( $im, 0, 0, $gray );

?


En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Generar Imagen dinámica con GD para utilizar de placeholder
« Respuesta #2 en: 28 Diciembre 2019, 19:35 pm »

Código
  1. imagefill( $im ,$w , $h , $gray );

No debería ser:

Código
  1. imagefill( $im, 0, 0, $gray );

?

Sobre los argumentos de la función imagefill tienes toda la razon deben de ser 0,0 para los valores x, y mencionados.

Sin embargo y a pesar de ese error mio, por defecto imagecreate debería de devolver imagen con el fondo negro.



ERROR MIO

El error era que previamente ya había mandado al output un espacio en blanco en alguno de los include donde realizó validaciones previas.

Pensé que no tenia ese problema por que, en teoría los headers que utilice para depuración no se deben de mostrar si ya se mando algo al output.

¿Por que pasa esto? Creo que ese espacio de mas que mande, se anexa al último header mandado por el servidor o por mi.

Saludos!
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Generar Imagen dinámica con GD para utilizar de placeholder
« Respuesta #3 en: 28 Diciembre 2019, 20:26 pm »

Sobre los argumentos de la función imagefill tienes toda la razon deben de ser 0,0 para los valores x, y mencionados.

Sin embargo y a pesar de ese error mio, por defecto imagecreate debería de devolver imagen con el fondo negro.



ERROR MIO

El error era que previamente ya había mandado al output un espacio en blanco en alguno de los include donde realizó validaciones previas.

Pensé que no tenia ese problema por que, en teoría los headers que utilice para depuración no se deben de mostrar si ya se mando algo al output.

¿Por que pasa esto? Creo que ese espacio de mas que mande, se anexa al último header mandado por el servidor o por mi.

Saludos!

Puede ser que tengas activado output buffering o algo similar.
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Generar Imagen dinámica con GD para utilizar de placeholder
« Respuesta #4 en: 28 Diciembre 2019, 21:50 pm »

Puede ser que tengas activado output buffering o algo similar.

En efecto mi estimado



Voy a darle una leída a la documentación para tunear bien los valores.

Muchas gracias por tu apoyo.

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines