Im laufenden PDF -Kreation mit 16 -Bit -Farbtiefe PNG -Unterstützung in PHP
-
24-09-2019 - |
Frage
Ich versuche, PDF -Dokumente im laufenden Fliegen in einer Anwendung zu erstellen, dh ein Benutzer klickt auf einen Link, und ein PDF -Dokument wird ihm mit einigen Text und einigen Bildern angezeigt.
Ich verwende derzeit FPDF v1.6 (http://www.fpdf.org/) Das stützt 24 -Bit -PNG (True Color) PNG, aber das Problem, das ich habe, ist, dass dies eine ältere Anwendung ist und es 1000 von PNGs mit 16 -Bit -Farbtiefe gibt, die FPDF nicht unterstützt, und ich kann aufgrund anderer Teile der Anwendung mit diesen Bildern.
Die einzigen Lösungen, die ich sehe, sind:
- Konvertieren Sie das 16 -Bit -PNG -Bild und einbetten Sie das in die PDF ein.
- Finden Sie eine neue PDF -Klasse der Klasse, die 16 -Bit -Farbtiefe PNGs akzeptiert.
Hat jemand irgendwelche Ideen?
Lösung
Vielleicht könnten Sie versuchen, es zu verwenden TCPDF (Ich habe es nie mit 16 -Bit -PNGs verwendet, aber es sollte einfach sein, es zu testen).
Andere Tipps
Damit in Python behoben:
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