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

g4를 g5로 변환 채택완료

jp 8년 전 조회 3,298
아래는 그누보드4에서 사용되는 다중이미지 게시판 일부 입니다. 그누보드5에서 사용하려고 g4를 g5로 변환하는데 안되네요.

좌측에 큰이미지가 있고 우측에 작은 섬네일이 있어서 섬네일에 마우스 올리면 좌측에 큰 이미지가 바뀌는 다중 이미지 갤러리 게시판입니다.(좌측의 큰이미지는 보이는데 우측의 섬네일이 안보이네요. 경로 관련 함수 같은데...)

고수님들의 도움 부탁드립니다.





<?



function UnsharpMask($img, $amount, $radius, $threshold) {







// Attempt to calibrate the parameters to Photoshop:

if ($amount > 500) $amount = 500;

$amount = $amount * 0.016;

if ($radius > 50) $radius = 50;

$radius = $radius * 2;

if ($threshold > 255) $threshold = 255;



$radius = abs(round($radius)); // Only integers make sense.

if ($radius == 0) { return $img; imagedestroy($img); break; }

$w = imagesx($img); $h = imagesy($img);

$imgCanvas = $img;

$imgCanvas2 = $img;

$imgBlur = imagecreatetruecolor($w, $h);



// Gaussian blur matrix:

// 1 2 1

// 2 4 2

// 1 2 1



// Move copies of the image around one pixel at the time and merge them with weight

// according to the matrix. The same matrix is simply repeated for higher radii.

for ($i = 0; $i < $radius; $i++)

{

imagecopy &nbsp; ($imgBlur, $imgCanvas, 0, 0, 1, 1, $w - 1, $h - 1); // up left

imagecopymerge ($imgBlur, $imgCanvas, 1, 1, 0, 0, $w, $h, 50); // down right

imagecopymerge ($imgBlur, $imgCanvas, 0, 1, 1, 0, $w - 1, $h, 33.33333); // down left

imagecopymerge ($imgBlur, $imgCanvas, 1, 0, 0, 1, $w, $h - 1, 25); // up right

imagecopymerge ($imgBlur, $imgCanvas, 0, 0, 1, 0, $w - 1, $h, 33.33333); // left

imagecopymerge ($imgBlur, $imgCanvas, 1, 0, 0, 0, $w, $h, 25); // right

imagecopymerge ($imgBlur, $imgCanvas, 0, 0, 0, 1, $w, $h - 1, 20 ); // up

imagecopymerge ($imgBlur, $imgCanvas, 0, 1, 0, 0, $w, $h, 16.666667); // down

imagecopymerge ($imgBlur, $imgCanvas, 0, 0, 0, 0, $w, $h, 50); // center

}

$imgCanvas = $imgBlur;



// Calculate the difference between the blurred pixels and the original

// and set the pixels

for ($x = 0; $x < $w; $x++)

{ // each row

for ($y = 0; $y < $h; $y++)

{ // each pixel

$rgbOrig = ImageColorAt($imgCanvas2, $x, $y);

$rOrig = (($rgbOrig >> 16) & 0xFF);

$gOrig = (($rgbOrig >> 8) & 0xFF);

$bOrig = ($rgbOrig & 0xFF);

$rgbBlur = ImageColorAt($imgCanvas, $x, $y);

$rBlur = (($rgbBlur >> 16) & 0xFF);

$gBlur = (($rgbBlur >> 8) & 0xFF);

$bBlur = ($rgbBlur & 0xFF);



// When the masked pixels differ less from the original

// than the threshold specifies, they are set to their original value.

$rNew = (abs($rOrig - $rBlur) >= $threshold) ? max(0, min(255, ($amount * ($rOrig - $rBlur)) + $rOrig)) : $rOrig;

$gNew = (abs($gOrig - $gBlur) >= $threshold) ? max(0, min(255, ($amount * ($gOrig - $gBlur)) + $gOrig)) : $gOrig;

$bNew = (abs($bOrig - $bBlur) >= $threshold) ? max(0, min(255, ($amount * ($bOrig - $bBlur)) + $bOrig)) : $bOrig;



if (($rOrig != $rNew) || ($gOrig != $gNew) || ($bOrig != $bNew))

{

$pixCol = ImageColorAllocate($img, $rNew, $gNew, $bNew);

ImageSetPixel($img, $x, $y, $pixCol);

}

}

}

return $img;

}



?>

<?

//썸네일 코드 시작

$data_path = G5_DATA_URL . "/file/{$bo_table}";//라이브러리 파일 참조

$thumb_path = $data_path . "/thumbOpen";

$thumb_path2 = $data_path . "/thumbOpen2";

?>







<SCRIPT LANGUAGE='JavaScript'>

// 이미지뷰어

<!--

var win= null;

function View_Open(img, w, h)

{

var winl = (screen.width-w)/2;

var wint = (screen.height-h)/3;

var settings&nbsp; ='height='+h+',';

settings +='width='+w+',';

settings +='top='+wint+',';

settings +='left='+winl+',';

settings +='scrollbars=yes,';

settings +='resizable=yes,';

settings +='status=no';



win=window.open("","newWindow",settings);

win.document.open();

win.document.write ("<html><head><title>원본 이미지 보기</title></head>");

win.document.write ("<script>function init(){window.resizeBy(document.all.pop_img.width-document.body.clientWidth, document.all.pop_img.height-document.body.clientHeight+10);}</script>");

win.document.write ("<body bgcolor=white topmargin=0 leftmargin=0 marginwidth=0 marginheight=0 oncontextmenu='return false' ondragstart='return false' onkeydown='return false' onselectstart='return false' onload='init();'>");

win.document.write ("<img src='"+img+"' border=0 onclick='window.close();' style='cursor:hand' title='클릭하면 닫혀요' id='pop_img'>");

win.document.write ("</body></html>");

win.document.close();

}

//-->

</SCRIPT>



<SCRIPT LANGUAGE="JavaScript">

<!--

image_directory = "";&nbsp; //배경이미지 경로

clear = new Image();&nbsp; clear.src = image_directory + "./img/blank.gif";

<?

//파일 뽑기

$sql2 = " select bf_file from $g5[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no limit 0, 12 ";

$result2 = sql_query($sql2);

for ($j=0; $row2 = sql_fetch_array($result2); $j++) {

if($j==0) $view_one = "{$thumb_path2}/{$row2['bf_file']}";

}

?>





//&nbsp; -->

</SCRIPT>



<table cellspacing="0" cellpadding="0" border="0" align="left">



<tr>





<td&nbsp; style="padding:4 0 10 0px;border:1px solid #D4DBE1;" width="540" height="400" align="center" valign="top" bgcolor=white>

&nbsp; <div style='width:540px;position:relative; overflow:hidden;' align="center" id="loadarea"><img src="<?=$view_one?>"&nbsp; border="0"></div>

</td>

<td width="10"></td>





<td style="padding:4 0 10 0px;border:1px solid #D4DBE1;" width="160" height="450" align="center" valign="top">

<!--작은사진목록-->

<table border="0" cellpadding="0" cellspacing="0" width="100%" valign='top'>

<tr>

<td style="border:solid 1px #D3D3D3; background-color:#E5E5E5; height:385px;" valign='top'>

<table border="0" cellpadding="0" cellspacing="0">



<tr>



<?

//파일 뽑기

$sql = " select bf_file, bf_source from $g5[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no limit 0, 12 ";

//$sql = " select bf_file, bf_source from $g5[board_file_table] where bo_table = '$bo_table' order by bf_no limit 0, 12 ";

$result = sql_query($sql);

for ($i=0; $row = sql_fetch_array($result); $i++) {





if($i != 0 && $i % 2 == 0) echo "</tr><tr>";



$view_w = 540; //썸네일 가로사이즈

$view_h = 400; //썸네일 세로사이즈

$sch_q = 100; //썸네일 퀼리티



if (!is_dir($thumb_path2)) {

@mkdir($thumb_path2, 0707);

@chmod($thumb_path2, 0707);



}



if (!is_dir($thumb_path)) {

@mkdir($thumb_path, 0707);

@chmod($thumb_path, 0707);



}



$filename = $row[bf_file]; //파일명

$thumb2 = $thumb_path2.'/'.$filename; //썸네일



if (!file_exists($thumb2)) { //view 용 이미지 생성



$file = $data_path.'/'.$filename; //원본

if (preg_match("/\.(jp[e]?g|gif|png)$/i", $file) && file_exists($file)) {

$size = getimagesize($file);

if ($size[2] == 1)

$src = imagecreatefromgif($file);

else if ($size[2] == 2)

$src = imagecreatefromjpeg($file);

else if ($size[2] == 3)

$src = imagecreatefrompng($file);

else

continue;



$rate = $view_h / $size[1];

//$width = (int)($size[0] * $rate);

$width = 540; //가로 사이즈 고정



//echo "rate : $rate ,width : $width, $height : $board[bo_2]
";

if($width <= $view_w) { //width가 지정된 사이즈보다 작을경우 rate 비율로 썸네일 생성

$dst = imagecreatetruecolor($width, $view_h);

imagecopyresampled($dst, $src, 0, 0, 0, 0, $width, $view_h, $size[0], $size[1]);

imagejpeg($dst, $thumb_path2.'/'.$filename, $sch_q);



} else {

$rate = $view_w / $size[0];

$height = (int)($size[1] * $rate);



$dst = imagecreatetruecolor($view_w, $height);

imagecopyresampled($dst, $src, 0, 0, 0, 0, $view_w, $height, $size[0], $size[1]);

imagejpeg($dst, $thumb_path2.'/'.$filename, $sch_q);



}

chmod($thumb_path2.'/'.$filename, 0707);

}



}



$view_w = 88; //썸네일 가로사이즈

$view_h = 66; //썸네일 세로사이즈

$thumb = $thumb_path.'/'.$filename; //썸네일

if (!file_exists($thumb)) { //기본 썸네일



$file = $data_path.'/'.$filename; //원본

if (preg_match("/\.(jp[e]?g|gif|png)$/i", $file) && file_exists($file)) {

$size = getimagesize($file);

if ($size[2] == 1)

$src = imagecreatefromgif($file);

else if ($size[2] == 2)

$src = imagecreatefromjpeg($file);

else if ($size[2] == 3)

$src = imagecreatefrompng($file);

else

continue;



$rate = $view_h / $size[1];

//$width = (int)($size[0] * $rate);

$width = 88; //사이즈를고정한다.



//echo "rate : $rate ,width : $width, $height : $board[bo_2]
";

if($width <= $view_w) { //width가 지정된 사이즈보다 작을경우 rate 비율로 썸네일 생성

$dst = imagecreatetruecolor($width, $view_h);

imagecopyresampled($dst, $src, 0, 0, 0, 0, $width, $view_h, $size[0], $size[1]);

$dst = UnsharpMask($dst, 80, 0.5, 3);

imagejpeg($dst, $thumb_path.'/'.$filename, $sch_q);



} else {

$rate = $view_w / $size[0];

$height = (int)($size[1] * $rate);

$dst = imagecreatetruecolor($view_w, $height);

imagecopyresampled($dst, $src, 0, 0, 0, 0, $view_w, $height, $size[0], $size[1]);

$dst = UnsharpMask($dst, 80, 0.5, 3);

imagejpeg($dst, $thumb_path.'/'.$filename, $sch_q);



}

chmod($thumb_path.'/'.$filename, 0707);

}



}



if (file_exists($thumb) && $filename) {

?>



&nbsp; <td style="border:solid 1px #D0D0D0;height:66px;width:88px;">

<a rel="enlargeimage::mouseover" rev="loadarea" href="<?=$thumb_path2?>/<?=$filename?>"><img src="<?=$thumb?>" style="border-width:0px;" /></a>

&nbsp; </td>





<?

//onMouseOut="bgChange('clear');"

}

}

?>

</table>

</td>

</tr>

</table>

<!--작은사진목록-->

</td>

</tr>

&nbsp; </table>

&nbsp; <!--사진테이블-->
댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
8년 전

코드만 보고서 적용하지마시구여

g4_import.php 로 전체적으로 변환하거나 해당 스킨만 변환하세여

로그인 후 평가할 수 있습니다

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

j
7년 전

감사합니다.

로그인 후 평가할 수 있습니다

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

답변을 작성하려면 로그인이 필요합니다.

로그인