调整大小,然后从数据库中显示BLOB元素

时间:2014-02-11 17:41:07

标签: php sql

我从未使用过PHP FILES数组,并开始将它用于此特定任务。从数据库中检索blob元素然后在调整大小后渲染出来,我在这段代码上遇到了麻烦。你可以帮帮我吗?在上传之前我是否需要调整元素的大小,或者也可以这样做。

这就是我做到的。

    <img src='data:image/jpeg;base64,".base64_encode($row['x'])." width='100'                   height='100''/>

1 个答案:

答案 0 :(得分:0)

使用imagecreatefromstring

在PHP中创建图像
$image = imagecreatefromstring(base64_decode($row['x']));

接下来,使用imagescale调整图片大小。

$image = imagescale($image, 100, 100);

设置适当的标题:

header('Content-Type: image/jpeg');

使用imagejpeg

输出图像
imagejpeg($image);

使用imagedestroy

销毁图像以释放内存
imagedestroy($image);

现在将<img />指向此PHP文件。

或者,如果将该逻辑放在自己的文件中对您不起作用,则可以使用输出缓冲来捕获图像as seen in this StackOverflow answer的输出,然后将其直接放在src中属性。

它会是这样的:

$image = imagecreatefromstring(base64_decode($row['x']));
$image = imagescale($image, 100, 100);

ob_start();
imagejpeg($image);
$contents = ob_get_contents();
ob_end_clean();

echo "<img src='data:image/jpeg;base64,".base64_encode($contents)."' />";

imagedestroy($image);