TCPDF添加由Php呈现的图像

时间:2016-01-18 07:17:54

标签: php image tcpdf

我在使用tcpdf在pdf文件上添加图片时遇到问题。我的图像是由PHP脚本呈现的。

下面是脚本调用模式:(直接检查浏览器时效果很好):

./Image.php?t=1049&e=100003&i=25040907060040

但是当我尝试使用下面的代码使用tcpdf添加时:

$pdf->Image('./Image.php?t=1049&e=100003&i=25040907060040', '', '',  20, 20, 'jpg', '', 'T', false, 300, '', false, false, 0, false, false, false);

失败并出现以下错误:

错误1:

Warning: getimagesize(./Image.php?t=1049&e=100003&i=25040907060040): failed to open stream: No error in .\Classes\tcpdf\include\tcpdf_images.php on line 171

错误2:

Warning: imagecreatefromjpeg(./Image.php?t=1049&e=100003&i=25040907060040): failed to open stream: No error in .\Classes\tcpdf\tcpdf.php on line 7033

那么,如何使用上面的php脚本(Image.php)添加图像?

提前致谢

1 个答案:

答案 0 :(得分:1)

失败是因为您的代码正在查找图像数据的数据流。

最佳解决方案是包含Image.php,它将具有输出图像数据的功能。

假设Image.php的班级ImageRenderer有一个名为render_image()的公共函数;

您可以像这样将图像渲染到PDF ..

require_once('Image.php');

$dynimage = ImageRenderer::render_image(1049,100003,25040907060040); // Parameters t=1049&e=100003&i=25040907060040
// $dynimage will have some data like 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg=='
$imgdata = base64_decode($dynimage); // decode stream
// The '@' character is used to indicate that follows an image data stream and not an image file name
$pdf->Image('@'.$imgdata);

希望这有帮助!