테스트 사이트 - 개발 중인 베타 버전입니다

thumbnail.lib.php 256라인 에러 대체

· 11년 전 · 8486 · 2
이것이 팁일지는 모르겠습니다. ^^*

스마트폰으로 이미지를 업로드하면 자꾸 /lib/thumbnail.lib.php 256라인 에러로 뜨더라구요

고생하다 호스팅업체와 이야기하던중 해결 됬씀다.

혹시나 나같은 경우가 있으신분이 있을까 해서요


php 버전이나 gd 버전에 따라 지원되지 않거나 가끔 에러가 나는 경우가 있는데

imagerotate 함수가 그런 경우 입니다.

이럴때는 imagerotate 함수를 대처하여 사용할수있는 동일 기능을 구현할 수 있는데

http://php.net/manual/en/function.imagerotate.php

를 보면 예제 소스들이 많이 있으며 확인해 수정

/lib/thumbnail.lib.php 파일에 rotateImage 함수를 대처할 rotateImage 함수를

256라인 $src = imagerotate($src, $degree, 0); 을 $src = rotateImage($src, $degree); 로 수정

최하단에 아래 소스를 추가

function rotateImage($img1, $rec) {
$wid = imagesx($img1);
$hei = imagesy($img1);
switch($rec) {
case 270:
$img2 = @imagecreatetruecolor($hei, $wid);
break;
case 180:
$img2 = @imagecreatetruecolor($wid, $hei);
break;
default :
$img2 = @imagecreatetruecolor($hei, $wid);
}
if($img2) {
for($i = 0;$i < $wid; $i++) {
for($j = 0;$j < $hei; $j++) {
$ref = imagecolorat($img1,$i,$j);
switch($rec) {
case 270:
if(!@imagesetpixel($img2, ($hei - 1) - $j, $i, $ref)){
return false;
}
break;
case 180:
if(!@imagesetpixel($img2, $i, ($hei - 1) - $j, $ref)) {
return false;
}
break;
default:
if(!@imagesetpixel($img2, $j, ($wid - 1) - $i, $ref)) {
return false;
}
}
}
}
return $img2;
}
return false;
}



=============== 아래가 최하단 소스 ===================

while(!feof($fh) && $count < 2) {
$chunk = fread($fh, 1024 * 100); //read 100kb at a time
$count += preg_match_all('#\x00\x21\xF9\x04.{4}\x00(\x2C|\x21)#s', $chunk, $matches);
}

fclose($fh);
return $count > 1;
}

<---- 여기에 추가하면 되더라구요

?>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

10년 전
imagerotate 함수 교체
영카트 5.0.1최신버전에서
설면대로 변경 하고 삽입을 하니 에러는 없는데
모발로 첨부 화일을 올리면 사진이 왼편으로 180 돌아가서 올라가는데 해결 방법 없나요(세로긴사진만 그렇고 가로(옆으로)긴 사진은 정상 입니다

참고로 최신 버전에서는 라인이 373 라인 입니다
단 가로로 긴 사진은 이상이 없는데
세로로 긴 사진만 왼편으로 180도 돌아가서 보입니다

게시글 목록

번호 제목
2108
2103
2102
2099
2093
2092
2087
2079
2076
2062
2061
2060
2057
2056
2046
2036
2029
2024
2015
2014
2001
1999
1995
1987
1981
1971
1967
1954
1945
1939