thumbnail.lib.php 256라인 에러 대체 정보
thumbnail.lib.php 256라인 에러 대체본문
이것이 팁일지는 모르겠습니다. ^^*
스마트폰으로 이미지를 업로드하면 자꾸 /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;
}
<---- 여기에 추가하면 되더라구요
?>
스마트폰으로 이미지를 업로드하면 자꾸 /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;
}
<---- 여기에 추가하면 되더라구요
?>
추천
0
0
댓글 2개
imagerotate 함수 교체
영카트 5.0.1최신버전에서
설면대로 변경 하고 삽입을 하니 에러는 없는데
모발로 첨부 화일을 올리면 사진이 왼편으로 180 돌아가서 올라가는데 해결 방법 없나요(세로긴사진만 그렇고 가로(옆으로)긴 사진은 정상 입니다
참고로 최신 버전에서는 라인이 373 라인 입니다
단 가로로 긴 사진은 이상이 없는데
세로로 긴 사진만 왼편으로 180도 돌아가서 보입니다
설면대로 변경 하고 삽입을 하니 에러는 없는데
모발로 첨부 화일을 올리면 사진이 왼편으로 180 돌아가서 올라가는데 해결 방법 없나요(세로긴사진만 그렇고 가로(옆으로)긴 사진은 정상 입니다
참고로 최신 버전에서는 라인이 373 라인 입니다
단 가로로 긴 사진은 이상이 없는데
세로로 긴 사진만 왼편으로 180도 돌아가서 보입니다