이진 문자열에서 GD를 얻을 수 있습니다
-
18-09-2019 - |
문제
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
데이터베이스의 이진 데이터 문자열입니다.
제휴하지 않습니다 StackOverflow