我想从MySQL获取我的图像blob并将其粘贴到带有PDFlib的PDF中。 如何转换blob以便将其用作PDFlib的普通图像?
这是我此刻尝试这样做的方式。
$img = imagecreatefromstring($qra['photo']); //$qra['photo'] is the mysql blob field
// Loading the image with PDFlib (this code is already tested with a normal image src like /images/example.jpg and works)
$image = $p->load_image("auto", $img, "");
$p->fit_image($image, 10, 10, "boxsize={50 50} position=center fitmethod=meet");
不知何故,使用imagecreatefromstring
无法正确创建图像,因为我收到了该代码的错误。
如何正确获取blob图像以便我可以使用它(将它保存在服务器上,因为tmp图像也可以工作)?
答案 0 :(得分:1)
我认为这样的事情对你有用:
<?php
$img = imagecreatefromstring($qra['photo']); //$qra['photo'] is the mysql blob field
ob_start(); // capture the image from the blob
imagepng($img); // Output a PNG image to either the browser or a file
$img = ob_get_clean(); // Get current buffer contents and delete current output buffer
// img should now be png resource
// Loading the image with PDFlib (this code is already tested with a normal image src like /images/example.jpg and works)
$image = $p->load_image("auto", $img, "");
$p->fit_image($image, 10, 10, "boxsize={50 50} position=center fitmethod=meet");
答案 1 :(得分:1)
这更简单。我希望你的图像作为存储在数据库中的字节数组。所以它应该很简单,只需将BLOB字段检索为字符串并使用PVF(PDFlib虚拟文件系统)。 使用这种技术,您可以为变量指定一个名称,然后可以在load_image()调用中使用该名称。
这在starter_pvf.php示例中进行了演示,该示例包含在PDFlib PHP包以及PDFlib Coobkook中: http://www.pdflib.com/pdflib-cookbook/general-programming/starter-pvf/php-starter-pvf/
样本只是从光盘读取图像数据,但这应该类似于从数据库中提取
# We just read some image data from a file; to really benefit
# from using PVF read the data from a Web site or a database instead
$imagedata = read_file("../input/PDFlib-logo.tif");
$p->create_pvf("/pvf/image", $imagedata, "");
# Load the image from the PVF
$image = $p->load_image("auto", "/pvf/image", "");