>  기사  >  백엔드 개발  >  바이너리 이미지를 디스크에 저장하지 않고 단일 스크립트로 직접 표시하려면 어떻게 해야 합니까?

바이너리 이미지를 디스크에 저장하지 않고 단일 스크립트로 직접 표시하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-08 04:55:02995검색

How can I display binary images directly in a single script without saving them to disk?

단일 스크립트에 바이너리 이미지 표시

문제:

이미지를 바이너리 데이터에서 직접 재생성하고 표시할 수 있습니까? 같은 스크립트? 여기에는 HTML 이미지 태그에 데이터를 표시하기 전에 GD 또는 유사한 도구를 사용하여 데이터를 처리하는 작업이 포함됩니다. 목표는 처리된 이미지를 디스크에 저장하거나 외부 스크립트를 사용하지 않는 것입니다.

해결책:

이는 이미지 소스 속성의 데이터 URI를 사용하여 달성할 수 있습니다. 데이터 URI 형식은 다음과 같습니다.

data:[<MIME-type>][;charset="<encoding>"][;base64],<data>

이 PHP 함수는 파일에서 데이터 URI를 생성합니다.

function data_uri($file, $mime) 
{  
  $contents = file_get_contents($file);
  $base64   = base64_encode($contents); 
  return ('data:' . $mime . ';base64,' . $base64);
}

다음 코드는 데이터 URI를 사용하여 이미지를 표시합니다.

echo '<img src="' . data_uri('elephant.png', 'image/png') . '" alt="An elephant" />';

사용:

처리된 바이너리 이미지 데이터를 표시하려면 data_uri 함수를 사용하고 결과 URI를 다음과 같이 이미지 소스로 출력할 수 있습니다.

$imagedata1 = file_get_contents('assets/test.png');
$imagedata1 = process_using_gd_or_something($imagedata1);

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

이 코드는 외부 스크립트나 디스크 저장소를 사용하지 않고 바이너리 데이터에서 직접 처리된 이미지를 표시합니다.

위 내용은 바이너리 이미지를 디스크에 저장하지 않고 단일 스크립트로 직접 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.