На создании PDF Fly PDF с 16-битной глубиной цветной поддержки PNG в PHP
-
24-09-2019 - |
Вопрос
Я пытаюсь создать PDF-документы на лету в приложении, то есть пользователю нажимает на ссылку, а документ PDF отображается им с некоторым текстом и некоторыми изображениями.
В настоящее время я использую FPDF V1.6 (http://www.fpdf.org/) который поддерживает 24бит (истинный цвет) PNG, но проблема, в которой у меня есть, это то, что это устаревшее приложение, и есть 1000 из PNG, которые имеют 16-битную глубину цвета, которую FPDF не поддерживает и не могу просто преобразовать из-за других частей Приложение с использованием этих изображений.
Единственные решения, которые я вижу:
- Преобразуйте 16-битное изображение PNG на лету и встроить это в PDF.
- Найдите новый класс класса PDF, который примет 16-битную глубину цвета PNG.
У кого-нибудь есть идеи?
Решение
Может быть, вы могли бы попробовать использовать TCPDF. (Никогда не использовал его с 16-битными PNGS, но его следует легко проверить).
Другие советы
Исправлено это в 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