Hola a todos amigos de SoloCodigo a ver si me pueden ayudar con este problemilla.
Sucede que tengo un archivo .txt donde hay un JPG que se encuentra en codigos Hexadecimales y deseo leerlo para poder mostrarlo con PHP, el contenido de este archivito es:
0xFFD8FFE00104A4649460110010100FFFE03E43524541544F523A2067642D6A7065672076312E3020287573696E6720494A47204A50454720763632292C2064656661756C74207175616C697479AFFDB04308667658777998AC14DCBBC191213F141D1A1F1E1D1A1C1C20242E2720222C231C1C2837292C30313434341F27393D38323C2E333432FFDB0431999CBC18DD1832211C213232323......0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
jeje disculpen Q NO COLOQUE TODO PERO ES BASTANTE pero weno es asi tiene bastantes lineas, la cosa es que como estuve leyendo el JPG tiene una cabecera que empieza en FFD8 asi reconocemos que se trata de una imagen JPEG y termina en FFD9 despues siguen puros 0 , la idea es como leer esto para mostrarlo como imagen.
Lo que yo hice fue:
1.- quitarle los dos caracteres de adelante "0x" eso no va
2.- leer de dos en dos esta cadena hexadecimal e ir convirtiendola a decimal y despues a caracter e ir concatenando en una variable
3.- finalmente la encodifico a base 64 y la arrojo por la web
el codigo es el siguiente:
$img1 =substr($img1, 2, strlen($img1)-2);
$c = "";
for ($i=0;$i<strlen($img1);$i+=2) {
$decimal = hexdec(substr($img1,$i,2));
$c.=chr($decimal);
}
$img = base64_encode($c);
$image = "data:image/jpeg;base64,$img";
echo '<img src="'.$image.'" />';
porfavor espero puedan ayudarme muchas Gracias.