显示数据库中的Blob图像

时间:2013-12-16 16:26:41

标签: php image blob

我正在开展一个涉及检索图像的项目,我的代码没有错误,但图像显示为图像图标。只显示一个图像。

$query = "SELECT * from cbir";
$result =mysql_query($query) or die('Error, query failed');

while($row = mysql_fetch_array($result)){
if (abs($red_count - $row['red_count'])> 50 && abs($blue_count - $row['blue_count'])> 50 && abs($green_count - $row['green_count'])> 50 ){
    header("content-type: image/jpeg");
    echo $row['image'];
}
}

2 个答案:

答案 0 :(得分:0)

试试这个

 $image = base64_decode($thumb);

        /** check if the image is db */
        if($image!=null)
        {

            $db_img = imagecreatefromstring($image);
            Header("Content-type: image/jpeg");
            imagejpeg($db_img);

        }
exit;

答案 1 :(得分:0)

你需要创建一个基于它的唯一ID来获取图像的PHP脚本,为了这个答案,我们可以将其称为imageId,并假装这样在一个名为image.php的PHP文件中。这看起来像是:

$query = "SELECT * from cbir WHERE imageId = ".mysql_real_escape_string($_GET['imageId']);
$result = mysql_query($query) or die('Error, query failed');

while($row = mysql_fetch_array($result)){
    header("content-type: image/jpeg");
    echo $row['image'];
}

然后,您需要在显示脚本中执行以下操作。

$query = "SELECT * from cbir";
$result = mysql_query($query) or die('Error, query failed');

while($row = mysql_fetch_array($result)){
    if (abs($red_count - $row['red_count'])> 50 && abs($blue_count - $row['blue_count'])> 50 && abs($green_count - $row['green_count'])> 50 ){
        echo '<img src="image.php?imageId='.$row['imageId'].'" />';
    }
}

我是否也可以指出你不应该再使用mysql函数,至少应该使用mysqli,但最好是PDO