문제

MySQL Blob 필드에 이미지를 저장하는 데이터베이스가 있습니다. URL의 ID를 기반으로 이미지를 선택하고 표시하는 스크립트를 설정하고 APPENDEND? RESIZE = 800X600을 사용하면 이미지를 크기로 조정합니다 (이 경우 800x600).

내가 사용하는 호스트에는 ImageMagick이 설치되지 않았으며 직접 수행 할 수 없으므로 PHP의 GD 라이브러리를 사용하여 이미지를 크기를 조정해야합니다.
하지만 나는 아직 Imagick 's와 같은 기능을 찾지 못했습니다. readImageBlob(), 따라서 먼저 임시 파일을 만들고, 편집하고, 바이너리 문자열을 가져오고, 브라우저로 보내고, 삭제하지 않고 데이터베이스에서 얻은 바이너리 문자열을 편집 할 수 없습니다 (waaaay 너무 많은 단계입니다. , 특히 이것은 생산에 들어갈 때 수천 가지의 타격을받을 것입니다).

그래서 내 질문은, 복제 할 방법이 있습니까? readImageBlob 임시 파일 솔루션을 통과하지 않고 PHP의 GD로?

도움이 되었습니까?

해결책

imageCreateFromString () 트릭을해야합니다. 매뉴얼의 기능 예는 거의 정확히 필요한 것 같습니다.

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top