왜 썸네일 생성이 되지 않을까요...
본문
http://gyujanggak.edenstore.co.kr/bbs/board.php?bo_table=test&page=
위 URL로 들어가보면
test222 라고 올린 이미지는
원본 이미지 사이즈를 축소해서 올린것이고 제대로 올라가는데.
test 라고 올린 이미지는 뷰페이지에서는 잘 보이나 리스트 페이지에서는 썸네일이 아예 생성조차 되질 않네요. (뷰페이지도 보이긴 하나 썸네일이 아닌 원본이미지가 바로 보임)
get_list_thumbnail 함수가 잘못되었나해서 thumbnail 함수를 이용해보아도 썸네일 생성이 되질 않네요.
확장자명이 대문자이면 문제가 있나해서 문자열도 치환하여 해보아도 마찬가지네요..
업로드 환경은 휴대폰으로 한거고 test는 원본이미지, test222 는 사이즈를 조금 축소해서 올린 이미지입니다.
혹시 서버 자동업데이트 때문인지...
항상 문제 없이 사용해오던 스킨인데 이거 왜 그런걸까요??
답변 2
이미지 사이즈가 너무 커서 썸네일 생성에 필요한 메모리 부족 때문인것 같군요
test 이미지를 그대로 다른 PHP 5.2 서버에 올리니 아래의 에러가 뜨네요.
Fatal error: Call to undefined function imagerotate() in /lib/thumbnail.lib.php on line 539
test라는 이미지는 세로사진이어서 EXIF 정보에 의거해서 가로로 돌리면서 썸네일을 출력하지 못하고 에러가 발생하는 것 같습니다.
또다른 PHP 5.6버전 서버에서 테스트하니 그대로 가로 사진이 썸네일 생성되네요.
결국 좀 낮은 버전의 PHP 에 포함된 GD 라이브러리에 문제가 있었던 것으로 보입니다.
해결책은 서버 PHP 를 업그레이드 하거나 아니면 아래 링크를 참조해서 사용자 imageRotate 함수를 추가해 보세요.
http://stackoverflow.com/questions/5406771/call-to-undefined-function-imagerotate
추가. 제 경우엔 처리하는데 시간이 오래 걸려서 Bad Gateway 에러마저 발생해서 아래부분을 주석처리까지 하여야 세로로 찍은 사진이 잘 보입니다.
if(0) { // 주석처리 - PHP 5.2 서버에서는 아래부분에서 에러 발생
if ($ignore_transparent == 0) {
imagefill($destimg, 0, 0, imagecolorallocatealpha($destimg, 255,255, 255, 127));
imagesavealpha($destimg, true);
}
}