2012-06-05 2 views
1

PHP 스크립트로 이미지를 표시하고 싶습니다. 데이터베이스에서 이미지 데이터를 가져옵니다. 데이터는 byte []입니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까?PHP가 데이터베이스 [byte]에서 이미지를 가져옴

function GetImage($imageDataArray) 
{ 
    $base64String = ""; 
    for($i = 0; $i < count($imageDataArray); $i++) 
    { 
     $string = trim(strtr(base64_encode($imageDataArray[$i]), '+/', '-_'), '='); 
     $base64String .= $string; 
    } 

    return 'data:image/png;base64,' . $base64String ; 
} 

를 그리고 여기 전화 :

난 아직이 시도

echo '<img src="'.$im->GetImage($imageDataArray).'" alt="Picture" />'; 

을하지만 나는 결과를 얻을 수 없습니다. 그림이 표시되지 않습니다. 이것은 당신에게 Imagick::readImageBlob

+0

base64_encode() && use urlencode() || rawurlencode() 제거 [1] [1] : http://stackoverflow.com/ questions/3259967/sending-displaying-a-base64-encoded-image –

+0

@Ummar : 이렇게 해보았습니다 (내 코드 참조). 그것은 적합하지 않습니다. –

+0

content-type 헤더를 image/png로 설정 하시겠습니까? 'header ("Content-Type : image/png");' –

답변

1

[64 기수에게 인코딩 된 이미지를] 다음에 봐

+0

답장을 보내 주셔서 감사합니다.하지만 외부 라이브러리를 사용하고 싶지 않습니다. –

0

도움이 될

+0

@Ummar : urlencode()는 실행되지 않는다고 생각합니다. 내가 생각하기에, base64_encode()는 다음과 같은 String을 가지기 때문에 틀렸다. _data : image/png; base64, MTM3ODANzgNzEMTMMTAMjYMTAMAMAMAMTMNzMNzINjgODIMAMAMAM4IANgMAMAMAMTK1NjIOTcM ... 나는 ASP.NET MVC에서 같은 것을 시도했다. 거기에 문제가 없었고 base64 문자열이 다릅니다. –

관련 문제