Foros del Web » Programando para Internet » PHP »

Problemas al mostrar imagen en FPDF

Estas en el tema de Problemas al mostrar imagen en FPDF en el foro de PHP en Foros del Web. Buenas noches amigo, tengo un problema, no se si estare haciendo bien le proceso de guardar una imagen base64, es una imagen de timbre fiscal ...
  #1 (permalink)  
Antiguo 31/03/2020, 18:27
 
Fecha de Ingreso: marzo-2012
Ubicación: El Vigia Edo Merida
Mensajes: 147
Antigüedad: 8 años, 2 meses
Puntos: 1
Exclamación Problemas al mostrar imagen en FPDF

Buenas noches amigo, tengo un problema, no se si estare haciendo bien le proceso de guardar una imagen base64, es una imagen de timbre fiscal para facturacion, la imagen la obtengo y guardo en una carpeta de esta manera,

Código PHP:
Ver original
  1. $dataURI= "data:image/png;base64,$data";
  2. $data = str_replace('data:image/png;base64,', '', $dataURI);
  3. $data = str_replace(' ', '+', $data);
  4. $data = base64_decode($data);
  5. $file = 'fotos/image1.png';
  6. $success = file_put_contents($file, $data);

La imagen me guarda bien y se guarda con una extension png, eso dice el archivo, ahora intento mostrar esta imagen en un pdf y me da un error diciendome de q el archivo no es una imagen png, le agradezco me podrian ayudar por favor, este es el error que me muestra

Fatal error: Uncaught Exception: FPDF error: Not a PNG file: ./fotos/image1.png in C:\xampp\htdocs\restosy\fpdf\fpdf.php:277 Stack trace: #0 C:\xampp\htdocs\restosy\fpdf\fpdf.php(1277): FPDF->Error('Not a PNG file:...') #1 C:\xampp\htdocs\restosy\fpdf\fpdf.php(1268): FPDF->_parsepngstream(Resource id #11, './fotos/image1....') #2 C:\xampp\htdocs\restosy\fpdf\fpdf.php(891): FPDF->_parsepng('./fotos/image1....') #3 C:\xampp\htdocs\restosy\fpdf\pdf.php(5190): FPDF->Image('./fotos/image1....', 10, 10, -300, 0, 'png') #4 C:\xampp\htdocs\restosy\reportepdf.php(518): PDF->TicketVenta() #5 {main} thrown in C:\xampp\htdocs\restosy\fpdf\fpdf.php on line 277
  #2 (permalink)  
Antiguo 01/04/2020, 10:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.065
Antigüedad: 11 años, 9 meses
Puntos: 2215
Respuesta: Problemas al mostrar imagen en FPDF

No entiendo, primero creas $dataURI con cadena de tipo e información codificada en base64, pero, en la siguiente línea intentas regresar todo a la cadena original. En verdad, no tiene sentido.

Cómo sabes si $data no contiene ya la cadena de tipo?

Primero:
Código PHP:
Ver original
  1. // Elimina la información de tipo de archivo, si es que viene incluida
  2. $data = str_replace('data:image/png;base64,', '', $data);
  3.  
  4. // Elimina solo espacios antes y después del contenido, no es necesario remplazarlos todos
  5. $data = trim($data);
  6.  
  7. // Finaliza el proceso como lo haces ahora
  8. $data = base64_decode($data);
  9. $file = 'fotos/image1.png';
  10. $success = file_put_contents($file, $data);

Antes de otra cosa, revisa el archivo, de preferencia en el navegador, para que compruebes la ruta y que, efectivamente, el archivo se guardó como imagen png válida.

Por último, probablemente la ruta que estás proporcionando a FPDF es incorrecta o debería ser absoluta en vez de relativa.
__________________
- León, Guanajuato
- GV-Foto



La zona horaria es GMT -6. Ahora son las 23:50.