2013-08-12 3 views
1

TCPDF : MySQL 데이터베이스에서 검색된 BLOB 값을 사용하여 TCPDF로 이미지를 표시하는 방법은 무엇입니까? example #9 - Image()에서BLOB 값을 사용하여 TCPDF에서 이미지를 표시하는 방법

+1

파일 시스템의 쓰기 가능한 폴더에 임시 이미지를 생성하고 이미지를 PDF로 가져옵니다. 가져올 때 이미지를 삭제하십시오. –

+0

@MartyMcVry - TCPDF에는 필요하지 않습니다. 이미지를 삭제 한 후에 OP가 해당 문서를 읽지 못했습니다. –

+0

@MartyMcVry, 여전히 PDF로 이미지를 볼 수 있습니까? – jned29

답변

3

:

$ 파일 이미지 또는 포함 된 파일의 (문자열) 이름 '@'문자 :

// Example of Image from data stream ('PHP rules') 
$imgdata = base64_decode('iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABlBMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDrEX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg=='); 

// The '@' character is used to indicate that follows an image data stream and not an image file name 
$pdf->Image('@'.$imgdata); 

API documentation for Image() 더 상세하게 설명 그 다음에 이미지 데이터 문자열이옵니다. 문서에 이미지를 포함하지 않고 이미지를 연결하려면 URL 앞에 별표 문자 (예 : *http://www.example.com/image.jpg)를 설정합니다. 이미 알바로 곤잘레스 TCPDF 당신 응답

+0

처럼 보이는 것은 base64_decode()가 필요하지 않을 수도 있습니다. –

+0

@Chen PHP 문자열은 확실히 바이너리 데이터를 저장할 수 있지만 (이 동일한 예에서도 마찬가지입니다) 대부분의 텍스트 편집기는 바이너리 데이터를 편집하기에 적합하지 않습니다 ;-) –

0

으로는 TCPDF::Image()에 이미지 덩어리를 통과 할 수 있지만, 이것은 몇 가지 큰 단점이있다 :

TCPDF 이미지 캐싱 이미지 모양을 위해 작동하지 않습니다. 따라서 TCPDF는 동일한 이미지를 여러 번 전달하는 경우 훨씬 더 많은 메모리를 사용합니다.

이미지 blob을 전달하면 TCPDF는 해당 파일을 임시 파일에 씁니다. 그러나 동일한 이미지 얼룩이 이미 제공되었는지 여부는 확인하지 않습니다. 따라서 동일한 이미지를 다시 전달하더라도 새 임시 파일을 작성합니다. 이것은 불필요한 입출력을 유발할뿐만 아니라 이미지 캐싱을 tcpdf로 분해합니다.

짧은 이야기 : 이미지를 여러 번 사용하는 경우 이미지 blob을 tcpdf로 전달하지 마십시오. 임시 파일에 저장하고 전달하십시오.

관련 문제