전체 BLOB에서로드하는 이유는 너무 오래 걸리는 이유이므로 EXIF 데이터가 포함 된 이미지 부분 만로드하면됩니다.
exif_read_data
에 BLOB 대신 파일 경로를 지정하면 기본적으로 필요한 정보 만 읽습니다. 그것이 단순히 선택 사항이 아니라면, 추악한 해결 방법/해킹이 필요할 수 있습니다.
예를 들어, 하드 코딩 된 값을 지정할 수 있습니다 :
$image = base64_encode(file_get_contents('test.jpg'));
echo strlen($image) . '<br />'; // 81684
// only read the first 30000 characters
$exif = exif_read_data('data://image/jpeg;base64,' . substr($image, 0, 30000));
echo '<pre>';
var_dump($exif);
echo '</pre>';
을 또는 적절한 크기가 발견 될 때까지 동적으로 증가 수 :
이
$image = base64_encode(file_get_contents('test.jpg'));
$read = '8192';
// this will produce errors, so i am suppressing them
while (!$exif = @exif_read_data('data://image/jpeg;base64,' . substr($image, 0, $read))) {
$read += $read;
}
echo '<pre>';
var_dump($exif);
echo '</pre>';
더 나은 해결책이있을 수 있지만, 나는 그것이 무엇인지 모른다. 희망이 도움이됩니다.
blob 대신 경로를 지정 해 주신 적이 있으신가요? : 'exif_read_data ('/ path/to/image.jpg ');' –
@mistermartin blob 만 있습니다. 실제로 경로를 사용하면 속도가 훨씬 빠릅니다 (방금 테스트되었습니다). – Code
필요한 경우에만 태그를 가져오고 배열에 대한 구문 분석을 비활성화하십시오.'exif_read_data ($ img, 'IFD0', false)' – maximkou