显示数据库中的Blob图像


Displaying Blob image from database

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

$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'];
}
}

试试这个

 $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;

您需要创建一个PHP脚本,该脚本将根据图像的唯一ID获取图像,为了这个答案,我们将其称为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。