On the Fly PDF Creazione con supporto PNG di profondità colore a 16 bit in PHP
-
24-09-2019 - |
Domanda
Sto cercando di creare documenti PDF al volo in un'applicazione, cioè un utente fa clic su un link e un documento PDF viene visualizzato loro con un po 'di testo e alcune immagini.
Attualmente sto usando FPDF v1.6 (http://www.fpdf.org/) che supporta png a 24 bit (colore vero) ma il problema che ho è che questa è un'applicazione legacy e ci sono 1000 di PNG che hanno una profondità del colore a 16 bit che FPDF non supporta e non posso semplicemente convertire a causa di altre parti della Applicazione usando queste immagini.
Le uniche soluzioni che vedo sono:
- Converti l'immagine PNG a 16 bit al volo e incorporala nel PDF.
- Trova una nuova classe PDF di classe che accetterà PNG di profondità del colore 16 bit.
Qualcuno ha qualche idea?
Soluzione
Forse potresti provare a usare Tcpdf (Non l'ho mai usato con PNG a 16 bit ma dovrebbe essere facile testarlo).
Altri suggerimenti
Risolto con questo in Python:
def fix_16_bit_depth_not_supported(raw_image_path):
"""
fix
RuntimeError: FPDF error: 16-bit depth not supported: test.png
"""
new_file, filename = tempfile.mkstemp(suffix='.png')
os.close(new_file)
i = cv2.imread(raw_image_path, cv2.IMREAD_UNCHANGED)
img = np.array(i, dtype=np.float32)
convert = img / 255.
cv2.imwrite(filename, convert)
return filename