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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Decodificar imagen base 64
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Decodificar imagen base 64  (Leído 3,794 veces)
daigodark

Desconectado Desconectado

Mensajes: 6


Aprendiz de programacion.


Ver Perfil
Decodificar imagen base 64
« en: 20 Julio 2015, 01:58 am »

Buenas noches, escribo para preguntar lo siguiente:

¿Como hago para decodificar una imagen que esta en mi base de datos en base 64, ya que tengo un código reciclado ("modifciado") de Internet pero me lanza este erro?
Notice: Undefined offset: 1 in D:\Documentos\Mis Documentos\Inscripcion\sacarimagen.php on line 21

la linea numero 21 tiene esto:

list(, $Base64Img) = explode('=', $Base64Img);

Si lo quito no da error pero no carga la imagen.

Aquí les dejo el código completo espero puedan ayudarme y de antemano gracias.
Código
  1. <?php
  2.  
  3. # Buscamos la imagen a mostrar
  4. $bd= new SQLite3('Asistencia.db');
  5. $s= $bd->query("SELECT * FROM imagen WHERE id='1';");
  6. while($row=$s->FetchArray()){
  7. if($row['ID']){
  8. # Mostramos la imagen
  9. $Base64Img=$row['Foto'];
  10.  
  11. echo"
  12.  
  13. ".$Base64Img;}};
  14.  
  15.  
  16.  
  17. //eliminamos data:image/png; y base64, de la cadena que tenemos
  18. //hay otras formas de hacerlo  
  19. list(, $Base64Img) = explode('/', $Base64Img);
  20. list(, $Base64Img) = explode('+', $Base64Img);
  21. list(, $Base64Img) = explode('=', $Base64Img);
  22.  
  23.  
  24.  
  25. //Decodificamos $Base64Img codificada en base64.
  26. $Base64Img = base64_decode($Base64Img);
  27. //escribimos la información obtenida en un archivo llamado
  28. //unodepiera.png para que se cree la imagen correctamente
  29. file_put_contents('unodepiera.jpg', $Base64Img);
  30. echo "<img src='unodepiera.jpg' alt='unodepiera' />";
  31. ?>
  32.  

[MOD] Usa las etiquetas GeSHi, para postear codigo.


« Última modificación: 20 Julio 2015, 02:05 am por simorg » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Decodificar imagen base 64
« Respuesta #1 en: 20 Julio 2015, 06:05 am »

la cosa es que las imagenes en base 64 como aparentemente las tienes que tener guardadas (según el comenrio) es "data:image/png;base64,...."

y las lineas 19 a 21
Código
  1. list(, $Base64Img) = explode('/', $Base64Img);
  2. list(, $Base64Img) = explode('+', $Base64Img);
  3. list(, $Base64Img) = explode('=', $Base64Img);

lo que hacen es, agarrar lo que está en la db y si hay "/" separa el codigo por eso y agarra solo lo que está de segundo... igual para el "+" y el "="... sin embargo no entiendo para que hace eso, en tal caso esas 3 lineas deberían ser solo

list(, $Base64Img) = explode(',', $Base64Img);

has el cambio y dime como te fue el reultado


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
daigodark

Desconectado Desconectado

Mensajes: 6


Aprendiz de programacion.


Ver Perfil
Re: Decodificar imagen base 64
« Respuesta #2 en: 20 Julio 2015, 18:49 pm »

Coloque solo el:

list(, $Base64Img) = explode(',', $Base64Img);


Y me siguio dando el mismo error
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Decodificar imagen base 64
« Respuesta #3 en: 20 Julio 2015, 19:07 pm »

Una mejor pregunta sería porque estas almacenando ese string en tu base de datos, que por cierto no sabemos el contenido del string. Solo sabemos que encima de un string (del cual no sabemos nada) tienes tu información de la imagen en base64. Que por cierto + y / son caracteres validos para base64 y lo que estas haciendo puede cortar información de la imagen.
En línea

daigodark

Desconectado Desconectado

Mensajes: 6


Aprendiz de programacion.


Ver Perfil
Re: Decodificar imagen base 64
« Respuesta #4 en: 20 Julio 2015, 19:20 pm »

Como por lo visto no leiste todo o no lo quisiste entender el codigo es reciclado trate de entenderlo y solo me salia el error, entre para consultar  el por que no para que me digan que mis preguntas no son serias, ya resolvi el problema Gracias Engel Lex
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ller imagen de base de datos
PHP
wizache 5 3,035 Último mensaje 1 Junio 2007, 00:19 am
por wizache
Subir imagen a base de datos
PHP
layker 2 3,668 Último mensaje 12 Mayo 2008, 06:31 am
por Syphroot
Decodificar imagen.
Dudas Generales
A2Corp 0 2,339 Último mensaje 17 Noviembre 2010, 08:49 am
por A2Corp
MOVIDO: Decodificar imagen.
Criptografía
APOKLIPTICO 0 2,921 Último mensaje 17 Noviembre 2010, 21:22 pm
por APOKLIPTICO
Imágen tiene base 64 y linkea a anuncios (un engaño)
Seguridad
free-articles 3 3,733 Último mensaje 14 Abril 2016, 13:33 pm
por free-articles
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines