2014-06-08 5 views
0

코드 도움으로 이미지 만 표시하면 코드가 제대로 작동합니다.웹 페이지의 특정 위치에 php의 png 이미지 표시

<?php 
// my code processing 
    header("Content-type: image/png"); 
    imagepng($base_image); 
    ?> 

그러나 일부 다른 텍스트를 echo하거나 일부 페이지를 내 페이지에 넣고 싶을 때 사용합니다. 나는 코드, 오류가 발생합니다 : 그것은 나에게 오류를 제공

<?php 
echo "hi"; 

?> 


<?php 
// my code processing 
    header("Content-type: image/png"); 
    imagepng($base_image); 
    ?> 

: 표시된 페이지에 일부 오류가 있습니다. 누군가이 점에서 저를 도울 수 있습니까?

답변

0

코드를 중단 할 Content-Type 헤더 전에 출력. 브라우저는 이미 이미지 데이터가 나타날 때까지 이미 기본값 인 text/html을 사용하고 있기 때문에 사용자가 이미지를 제공하려고하는지 알지 못합니다. 페이지의 특정 지점에서 이미지를 원한다면 이미지를 별도의 개체로 제공해야합니다. 가장 쉬운 방법은 <img> 태그에 태그를 넣는 것입니다. <img src="myimage_generator.php" />

0

이 답변은 another SO answer.을 기반으로합니다. 이미 데이터를 브라우저에 보낸 후에 헤더 정보를 보내려고합니다. 이는 불가능합니다. 그렇다고하더라도 데이터만으로 페이지에 이미지를 표시 할 수는 없습니다. 먼저 이미지 데이터를 base64로 인코딩해야합니다. 이렇게하면 전체 HTML 페이지를 만들고이 이미지를 CSS 위에 배치 할 수 있습니다.

// Enable output buffering 
ob_start(); 
imagepng($base_image); 
// Capture the output 
$imagedata = ob_get_contents(); 
// Clear the output buffer 
ob_end_clean(); 

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