2009-08-18 4 views
2

이미지를 MySQL BLOB 필드에 저장하는 데이터베이스가 있습니다. URL에있는 ID를 기반으로 이미지를 선택하고 표시하는 스크립트를 설치하고 크기 조정 = 800x600을 추가하면 이미지의 크기가 조정됩니다 (이 경우 800x600).GD에서 이진 문자열의 이미지 가져 오기

내가 사용하는 호스트에는 Imagemagick이 설치되어 있지 않으므로 직접하지 않으므로 PHP의 GD 라이브러리를 사용하여 이미지의 크기를 조정해야합니다.
그러나 Imagick의 readImageBlob()과 같은 함수를 아직 찾지 못했습니다. 따라서 임시 파일을 먼저 만들지 않고 편집하고 이진 문자열을 가져온 다음 데이터베이스로 가져 오는 이진 문자열을 편집 할 수 없습니다 브라우저에서 삭제 한 다음 삭제합니다 (특히 너무 많은 단계입니다. 특히 제작에 들어가면 몇 천 번 안타까울 것입니다).

내 질문은 임시 파일 솔루션을 거치지 않고 PHP의 GD로 readImageBlob을 복제 할 수있는 방법이 있습니까?

답변

5

imagecreatefromstring() 트릭을 수행해야합니다. 나는 매뉴얼의 기능 예는 거의 정확하게 당신이 필요하다고 생각 :

$im = imagecreatefromstring($data); 
if ($im !== false) { 
    header('Content-Type: image/png'); 
    imagepng($im); 
    imagedestroy($im); 
} 
else { 
    echo 'An error occurred.'; 
} 

$data 데이터베이스에서 이진 데이터 문자열입니다.

관련 문제