Создание PDF на лету с поддержкой глубины цвета 16 бит png в php - PullRequest
0 голосов
/ 05 марта 2010

Я пытаюсь создавать PDF-документы на лету в приложении, то есть пользователь нажимает на ссылку, и на них отображается PDF-документ с текстом и изображениями.

В настоящее время я использую FPDF v1.6 (http://www.fpdf.org/), который поддерживает 24-битные (истинный цвет) PNG, но проблема у меня заключается в том, что это устаревшее приложение, и есть тысячи PNG с 16-битной глубиной цвета какой FPDF не поддерживает, и я не могу просто конвертировать из-за других частей приложения, использующих эти изображения.

Единственные решения, которые я вижу:

  1. конвертирует 16-битное изображение PNG на лету и вставляет его в PDF.
  2. найдите новый класс pdf класс, который будет принимать 16-битную глубину цвета png.

У кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 05 марта 2010

Возможно, вы могли бы попробовать использовать TCPDF (никогда не использовал его с 16-битными PNG, но это должно быть легко проверить).

0 голосов
/ 16 августа 2018

Исправлено в 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
...