2013-12-16 3 views
0

이미지 검색과 관련된 프로젝트에서 작업하고 있습니다. 코드에는 오류가 없지만 이미지는 이미지 아이콘으로 표시됩니다. 하나의 이미지 만 표시됩니다.데이터베이스에서 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

제공되는 정보로는 대답 할 수 없습니다 - 죄송합니다. – Horen

+1

http 응답에는 일반적으로 SINGLE 항목 만 포함됩니다. 일부 html 또는 이미지, 또는 pdf 등이 있습니다. 루프를 가져 오거나 출력하는 중입니다. header() 호출은 첫 번째 출력 이미지 다음에 FAIL이되고 나머지 데이터는 첫 번째 이미지의 데이터가 표시된 후 임의의 쓰레기로 간주됩니다. –

+0

평판이 10 개 이상이어야하므로 결과 이미지를 추가 할 수 없습니다. – user3108024

답변

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; 
+3

당신은 OP가 base64로 인코딩 된 이미지를 저장했다고 가정하고 있습니다. blob을 사용하면 b64 인코딩은 공간을 낭비합니다. 모든 것을 약 33 %까지 날려 버립니다. –

+0

이미지가 blob –

+0

에 저장되어 있다고 가정하고 Blob은 BINARY 저장소에 있다고 가정합니다. blob을 b-64로 인코딩 할 필요가 없습니다. –

0

당신은 그것을 고유 ID,이 답변을 위해 imageId를 호출 할 수있어 기반으로 이미지를 얻을 것이다 PHP 스크립트를 만들 필요가 시도하고이 척 수 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'].'" />'; 
    } 
} 

는 또한 당신은 아주 최소한 mysqli, 바람직 PDO를 사용해야합니다, 당신은 정말 더 이상 MySQL의 기능을 이용해야한다는 점을 지적 할 수 있습니다.

+0

비슷한 이미지를 검색하고 싶습니다. 사용자가 이미지를 업로드하고 데이터베이스의 각 이미지에 대해 저장된 r, g 및 b와 비교하기 위해 r, g 및 b의 개수가 추출됩니다. 차이가 가장 작은 이미지가 표시됩니다. 나는 이드를 사용하여 비교할 수 없다. – user3108024

+0

미안하지만 그건 내 잘못이야. 이미지 ID를 가져 오기 위해 원래 쿼리를 사용하도록 지금 수정되었습니다. 내 파트에 붙여 넣기 오류를 복사합니다. select * 쿼리는 rgb 비교를 위해 모든 이미지를 반환하지만 image.php가 image 태그의 src 속성의 일부로 단일 이미지를로드하는 데 사용할 수있는 이미지 당 고유 한 이미지 ID를 가지고 있는지 확인하십시오. –

관련 문제