在PHP中创建具有16位颜色深度png支持的pdf创建

时间:2010-03-05 16:31:34

标签: php png pdf-generation 16-bit

我正在尝试在应用程序中动态创建pdf文档,即用户单击链接并向他们显示带有一些文本和一些图像的pdf文档。

我目前正在使用支持24位(真彩色)png的FPDF v1.6(http://www.fpdf.org/),但我遇到的问题是这是一个遗留应用程序,并且有1000个png是16位颜色深度哪个FPDF不支持,我不能简单地使用这些图像转换应用程序的其他部分。

我看到的唯一解决方案是:

  1. 动态转换16位png图像并将其嵌入到pdf中。
  2. 找到一个新的pdf类,它将接受16位颜色深度png。
  3. 有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

也许您可以尝试使用TCPDF(从未将其用于16位PNG,但应该很容易对其进行测试)。

答案 1 :(得分:0)

已在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