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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Thumnails jpeg en negro, pero sólo algunas.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Thumnails jpeg en negro, pero sólo algunas.  (Leído 3,011 veces)
El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Thumnails jpeg en negro, pero sólo algunas.
« en: 5 Junio 2015, 21:34 pm »

Hola, buen día. El día de ayer hice un script que hace uso de imagecreatefromjpeg() e imagecopyresampled() para generar miniaturas. En mi servidor local crea las imágenes a la perfección, sin embargo en el servidor de mi proveedor de hosting unas imágenes las genera bien y otras no. Ahora bien, siempre son las mismas imágenes.

versión PHP local: 5.2

versión PHP proveedor hosting: 5.4.25


En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Thumnails jpeg en negro, pero sólo algunas.
« Respuesta #1 en: 5 Junio 2015, 22:23 pm »

Sin saber que imágenes son y sin ver el código difícil de saber.


En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Thumnails jpeg en negro, pero sólo algunas.
« Respuesta #2 en: 6 Junio 2015, 06:39 am »

No coloqué el código porque me pareció innecesario, pues la cuestión (a mi parecer) tiene más que ver con factores externos como la versión de PHP o el formato JPEG que con el código en si. De todas maneras aquí les dejo el código. y la dirección de la página donde lo implemento.

Código
  1. / >> Si no existe la miniatura, la genero.
  2. $Info_Imagen = getimagesize($_GET['Galeria']."/".$ARR_Todos[$Contador]);
  3. switch($Info_Imagen[2])
  4. {
  5. case 1:
  6. $Original = imagecreatefromgif($_GET['Galeria']."/".$ARR_Todos[$Contador]);
  7. break;
  8. case 3:
  9. $Original = imagecreatefrompng($_GET['Galeria']."/".$ARR_Todos[$Contador]);
  10. break;
  11. case 2:
  12. $Original = imagecreatefromjpeg($_GET['Galeria']."/".$ARR_Todos[$Contador]);
  13. break;
  14. case 6:
  15. $Original = imagecreatefromwbmp($_GET['Galeria']."/".$ARR_Todos[$Contador]);
  16. break;
  17. }
  18. // >> Redimensiono y guardo la miniatura.
  19. $Miniatura = imagecreatetruecolor(128, 128);
  20. if($Info_Imagen[0] < $Info_Imagen[1])
  21. {
  22. $Relacion = $Info_Imagen[0] / 128;
  23. }else{
  24. $Relacion = $Info_Imagen[1] / 128;
  25. }
  26. imagecopyresampled($Miniatura, $Original, 0, 0, 0, 0, 128, 128, 128 * $Relacion, 128 * $Relacion);
  27. switch($Info_Imagen[2])
  28. {
  29. case 1:
  30. imagegif($Miniatura, "Imagenes/Miniaturas_Galeria/".$ARR_Todos[$Contador]);
  31. break;
  32. case 3:
  33. imagepng($Miniatura, "Imagenes/Miniaturas_Galeria/".$ARR_Todos[$Contador]);
  34. break;
  35. case 2:
  36. imagejpeg($Miniatura, "Imagenes/Miniaturas_Galeria/".$ARR_Todos[$Contador]);
  37. break;
  38. case 6:
  39. imagewbmp($Miniatura, "Imagenes/Miniaturas_Galeria/".$ARR_Todos[$Contador]);
  40. break;
  41. }

Ruta de la implementación:

http://novena-noche-prueba.byethost12.com/?Contenido=Galeria&Galeria=Imagenes/Galeria/Pinturas

Notarán que en el enlace de arriba aparece una imagen en negro. Y siempre es esa imagen la que no se redimensiona.
En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Thumnails jpeg en negro, pero sólo algunas.
« Respuesta #3 en: 6 Junio 2015, 22:57 pm »

Parece que algunas de las imagenes GD no las puede parsear correctamente no se si estén dañadas o el formato sea diferente o algo así. De hecho, php me seguia advirtiendo de un error recuperable blah blah y tuve que agregar:

Código
  1. ini_set('gd.jpeg_ignore_warning', true);

Pero no se si esto te ayude. A pesar de los errores, GD si pudo crear la imagen aunque yo estoy en PHP 5.6.
En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Thumnails jpeg en negro, pero sólo algunas.
« Respuesta #4 en: 7 Junio 2015, 07:04 am »

Mmmmmm, pues precisamente esa es mi duda, de por qué en algunas versiones de PHP se puede hacer y en otras no, y qué alternativas tengo ante este problema. Pues como pueden ver la versión de mi proveedor es más reciente que la mía y esa es precisamente la del problema.
En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Thumnails jpeg en negro, pero sólo algunas.
« Respuesta #5 en: 7 Junio 2015, 15:46 pm »

Mmmmmm, pues precisamente esa es mi duda, de por qué en algunas versiones de PHP se puede hacer y en otras no, y qué alternativas tengo ante este problema. Pues como pueden ver la versión de mi proveedor es más reciente que la mía y esa es precisamente la del problema.

Pues no estoy muy seguro que sea GD, creo que tiene que ver con alguna otra configuracion de PHP. A pesar del error, la imagen si se pudo recrear. Yo probaría directamente solo con esa imagen.

Código
  1. header('Content-type: image/jpeg');
  2. ini_set('gd.jpeg_ignore_warning', true);
  3. $file = '10999767_415400128623803_4277907763891692236_o.jpg'
  4. $info = getimagesize($file);
  5. $img = imagecreatefromjpeg($file);
  6.  
  7. $min = imagecreatetruecolor(128,128);
  8. imagecopyresampled($min, $img, 0, 0, 0, 0, 128, 128, $info[0], $info[1]);
  9. imagejpeg($min);

Este es el script de prueba que tenia en mi maquina con PHP 5.6. Es bastante directo, solo tienes que modificar $file por el nombre del archivo que quieras probar. Y despues lo ejecutas desde el navegador y debería darte la miniatura. Pruebalo con alguna imagen que te falle. En mi caso yo probe con:



De hecho, con esa imagen incluso mi navegador de firefox actua de manera extraña. A pesar de todo:

« Última modificación: 7 Junio 2015, 15:58 pm por MinusFour » En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Thumnails jpeg en negro, pero sólo algunas.
« Respuesta #6 en: 7 Junio 2015, 22:19 pm »

Lo siento, no me supe explicar. Sí el error está resuelto gracias a la linea de código que me pasaste, muchas gracias por eso. Pero me seguía intrigando el porqué de dicho error.

Al parecer se debe a la forma en que la librería GD trabaja con las imágenes y es que, a pesar de que las aplicaciones des escritorio trabajan bien con las imágenes que contienen pequeños errores en su codificación, GD no lo hace así, al parecer tien problemas en el tratamiento de este error.

De nuevo, muchas gracias por la ayuda.
En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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