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

썸네일 세로가 잘려서 나옵니다.

그누보드웹디자이너
· 12년 전 · 1519 · 1
dothome_co_kr_20130420_101633.jpg
제가 원하는건 세로도 비율대로 출력되었으면 합니다~!
center crop 되어서 ㅜㅜㅜ
부탁 드립니다~!!


<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

// 제목길이 잘 맞추세요.
$thumb_width = '175'; //썸네일 폭
$thumb_height = '117'; //썸네일 높이
$thumb_quality = '100'; //썸네일 퀄리티_100 이하

if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");

$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';

@mkdir($thumb_path, 0707);
@chmod($thumb_path, 0707);

$mod = $board[bo_gallery_cols];
$td_width = (int)(115 / $mod);

// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
?>

<!--
1 ) Reference to the file containing the javascript.
This file must be located on your server.
-->

<script type="text/javascript" src="<?=$board_skin_path?>/highslide/highslide-with-gallery.js"></script>


<!--
2) Initialize the hs object and optionally override the settings defined at the top
of the highslide.js file. The parameter hs.graphicsDir is important!
-->

<script type="text/javascript">
hs.graphicsDir = '<?=$board_skin_path?>/highslide/graphics/';
hs.align = 'center';
hs.transitions = ['expand', 'crossfade'];
hs.wrapperClassName = 'dark borderless floating-caption';
hs.fadeInOut = true;
hs.dimmingOpacity = .75;

// Add the controlbar
if (hs.addSlideshow) hs.addSlideshow({
//slideshowGroup: 'group1',
interval: 5000,
repeat: false,
useControls: true,
fixedControls: 'fit',
overlayOptions: {
opacity: .6,
position: 'bottom center',
hideOnMouseOut: true
}
});
</script>

<!--
3) These CSS-styles are necessary for the script to work. You may also put
them in an external CSS-file. See the webpage for documentation.
-->
<link rel="stylesheet" type="text/css" href="<?=$board_skin_path?>/highslide/highslide.css" />

<style type="text/css">
input, button, textarea, select, {color: #000000;font-family:Tahoma,돋움;}
td { color: #f0f0f0; }
.exif_info {font-family:Arial; font-size:10px; color:#f0f0f0; font-weight:normal;}
.view_info {font-family:Tahoma,굴림; font-size:10px; color:#36CB36; font-weight:bold;}
</style>
</head>

<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
<tr>
<td>

<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
<tr>
<td width="4" nowrap="nowrap"></td>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="7">
<tr>
<td width="70%" align="left" nowrap="nowrap">
<? if ($is_category) { ?>
<? if (!$wr_id) { ?>
<?
$cnt_bo_1 = $bo_1[0] ? $bo_1[0] : 10; // 한줄당 분류 갯수(현재:10)
$cnt = 1;
$cnt0 = 0;
$bb_s=""; $bb_e="";
$b_s=""; $b_e="";
$arr = explode("|", $board[bo_category_list]); // 구분자가 , 로 되어 있음
$str = " |";

for ($i=0; $i<count($arr); $i++)
if (trim($arr[$i])) {
if ($sca == $arr[$i]) { $cnt0++; $b_s="<b>"; $b_e="</b>"; } else {$b_s=""; $b_e="";}
$str .= " <a href='./board.php?bo_table=$bo_table&sca=".urlencode($arr[$i])."' class='cate_link'>$b_s$arr[$i]$b_e</a> |";
if ($cnt == $cnt_bo_1) { $cnt = 0; $str .= "<br>"; }
$cnt++;
}
if ($cnt0 == 0 ) { $bb_s="<b>"; $bb_e="</b>"; }
?>
<?echo " | ";echo $bb_s;?><a href='./board.php?bo_table=<?=$bo_table?>&page=<?=$page?>' class='cate_link'>전체</a><?=$bb_e?>
<?=$str?>
<? } ?>
<? } else { ?>
<!-- 페이지 -->
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/prev_btn.jpg' width='13' height='13' border='0' align='absmiddle' title='이전검색'></a>"; } ?>
<? echo $write_pages; ?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/next_btn.jpg' width='13' height='13' border='0' align='absmiddle' title='다음검색'></a>"; } ?>
<? } ?>
</td>
<td width="30%" align="right" nowrap="nowrap">
<? if ($admin_href) { ?>게시물 <?=number_format($total_count)?>건&nbsp;&nbsp;<? } ?>
<? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/rss_btn.jpg' title="RSS" width="57" height="22" border="0" align="absmiddle"></a><?}?>
<? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/admin_btn.jpg" title="관리자" width="57" height="22" border="0" align="absmiddle"></a><?}?>
</td>
</tr>
</table>
</td>
<td width="4" nowrap="nowrap"></td>
</tr>
</table>

<div style='height:20px;'></div>
<form name="fboardlist" method="post" style="margin:0px;" />
<input type="hidden" name="bo_table" value="<?=$bo_table?>" />
<input type="hidden" name="sfl" value="<?=$sfl?>" />
<input type="hidden" name="stx" value="<?=$stx?>" />
<input type="hidden" name="spt" value="<?=$spt?>" />
<input type="hidden" name="page" value="<?=$page?>" />
<input type="hidden" name="sw" value="" />

<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>

<?
for ($i=0; $i<count($list); $i++)
{
if ($i && $i%$mod==0)
echo "</tr><tr>";
$img = "<img src='$board_skin_path/img/noimage.gif' border=0 title='이미지 없음'>";
$image = $list[$i][file][0][file];
$thumb = $thumb_path.'/'.$list[$i][file][0][file];

if (!file_exists($thumb))
{
$file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
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 = $thumb_width / $size[0];
$height = (int)($size[1] * $rate);

if ($height < $thumb_height)
$dst = imagecreatetruecolor($thumb_width, $height);
else
$dst = imagecreatetruecolor($thumb_width, $thumb_height);

imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][file][0][file], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][file][0][file], 0606);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
}
}

if (file_exists($thumb) && $list[$i][file][0][file])
{
$img = "<a href='$g4[path]/data/file/$bo_table/$image') class='highslide' onclick='return hs.expand(this)' ><img src='{$thumb}' width='{$thumb_width}' height='{$thumb_height}' border='0' style='border:0px solid #999999;' alt='' title='Click to enlarge'></a>";
} else {
preg_match("`<\s*img\s+src\s*=\s*['|\"]?([^'|\"\s]+://[^'|\"\s]+\.(gif|jpe?g|png))['|\"]?\s*[^>]+`i", $list[$i]['wr_content'], $images);

if (!empty($images[1]))
{
$img_size = GetImageSize("$images[1]");
if($img_size[0] >= $img_size[1])
{
$imgper = $thumb_width/$img_size[0];
$thumb_height = $img_size[1]*$imgper;
}else{
$imgper = $thumb_height/$img_size[1];
$thumb_width = $img_size[0]*$imgper;
}

$img = "<a href='$g4[path]/data/file/$bo_table/$image') class='highslide' onclick='return hs.expand(this)' ><img src='{$images[1]}' width='{$thumb_width}' height='{$thumb_height}' align='absmiddle' border='0'></a>";
} else {
echo "";
}
}

$style = "";
if ($list[$i][icon_new])
$style = " style='font-weight:normal;' ";
$subject = "<a href='{$list[$i][href]}' onfocus='this.blur()'><span $style>".cut_str($list[$i][subject],77)."</span></a>";

$comment_cnt = "";
if ($list[$i][comment_cnt])
$comment_cnt = " <a href=\"{$list[$i][comment_href]}\"><span style='font-size:7pt;'>{$list[$i][comment_cnt]}</span></a>";

$bg = ""; //새글?
if ($list[$i][icon_new])
$bg="thumb_1_2.gif";
else
$bg="thumb_1.gif";


echo "<td width='{$td_width}%' valign=top style='word-break:break-all;'>\n";
echo "<table cellpadding='0' cellspacing='0' border='0'>\n";
echo "<br><br><br><tr><td>$img";
// 사진 밑의 제목과 Exif 정보를 출력하는 내용
echo "</div></td></tr>\n";
if ($is_checkbox) echo "<tr><td align='center'><a href='{$list[$i][href]}' onfocus='this.blur()'>$subject</a> <a href=\"{$list[$i][comment_href]}\">{$list[$i][comment_cnt]}</a></td></tr>\n";
if ($is_checkbox) echo "<tr><td align='center'>{$list[$i][datetime2]}";
if ($is_checkbox) echo "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
echo "</td></tr>\n";
echo "</table></td>\n";

}

// 나머지 td
$cnt = $i%$mod;
if ($cnt)
for ($i=$cnt; $i<$mod; $i++)
echo "<td width='{$td_width}%'>&nbsp;</td>";
?>

</tr>
<tr>
<td colspan='<?=$mod?>' height='20'>
</td>
</tr>
<? if (count($list) == 0) { echo "<tr><td colspan='$mod' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
</table>
</form>
</td>
</tr>
<tr>
<td align="center">
<!-- 하단버튼 -->
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff">
<tr>
<td width="4" nowrap="nowrap"></td>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="7">
<tr>
<td align="left">
<!-- 페이지 -->
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/prev_btn.jpg' width='13' height='13' border='0' align='absmiddle' title='이전검색'></a>"; } ?>
<? echo $write_pages; ?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/next_btn.jpg' width='13' height='13' border='0' align='absmiddle' title='다음검색'></a>"; } ?>
</td>
</tr>
<tr>
<td colspan="2">
<!-- 검색 토글 -->
<script language="JavaScript" type="text/javascript">
<!--
function toggleMenu(currMenu) {
if (document.all) {
thisMenu = eval("document.all." + currMenu + ".style")
if (thisMenu.display == "block") {
thisMenu.display = "none"
}
else {
thisMenu.display = "block"
}
return false
}
else {
return true
}
}
//-->
</script>

<!-- 버튼 링크 -->
<form name=fsearch method=get style="margin:0px;" />
<input type=hidden name=bo_table value="<?=$bo_table?>" />
<input type=hidden name=sca value="<?=$sca?>" />

<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="50%" align="left">
<? if ($list_href) { ?><a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/list_btn.jpg" width="50" height="22" align="absmiddle" border="0"></a><? } ?>
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/write_btn.jpg" width="50" height="22" align="absmiddle" border="0"></a><? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/s_del_btn.jpg" width="50" height="22" align="absmiddle" border="0"></a>
<a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/s_copy_btn.jpg" width="50" height="22" align="absmiddle" border="0"></a>
<a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/s_move_btn.jpg" width="50" height="22" align="absmiddle" border="0"></a>
<? } ?>
</td>
<!--<td width="50%" align="right">
<select name=sfl class="search_select">
<option value='wr_subject'>제목</option>
<option value='wr_content'>내용</option>
<option value='wr_subject||wr_content'>제목+내용</option>
<option value='mb_id'>회원아이디</option>
<option value='wr_name'>이름</option>
</select>&nbsp;

<input name="stx" maxlength="15" itemname="검색어" required value="<?=$stx?>" class="search_input" />&nbsp;
<select name=sop class="search_select">
<option value=and>and</option>
<option value=or>or</option>
</select>&nbsp;
<input type=image src="<?=$board_skin_path?>/img/search_btn.jpg" width="50" height="22" border="0" align="absmiddle" />
</td>-->
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
<td width="4" nowrap="nowrap"></td>
</tr>
</table>
</td>
</tr>
</table>
<div style='height:20px;'></div>
</td>
</tr>
</table>


<? if ($is_checkbox) { ?>
<script language="JavaScript" type="text/javascript">
function all_checked(sw)
{
var f = document.fboardlist;

for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]")
f.elements[i].checked = sw;
}
}

function check_confirm(str)
{
var f = document.fboardlist;
var chk_count = 0;

for (var i=0; i<f.length; i++) {
if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
chk_count++;
}

if (!chk_count) {
alert(str + "할 게시물을 하나 이상 선택하세요.");
return false;
}
return true;
}

// 선택한 게시물 삭제
function select_delete()
{
var f = document.fboardlist;

str = "삭제";
if (!check_confirm(str))
return;

if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
return;

f.action = "./delete_all.php";
f.submit();
}

// 선택한 게시물 복사 및 이동
function select_copy(sw)
{
var f = document.fboardlist;

if (sw == "copy")
str = "복사";
else
str = "이동";

if (!check_confirm(str))
return;

var sub_win = window.open("", "move", "left=50, top=50, width=396, height=550, scrollbars=0");

f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->

댓글 작성

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

로그인하기

댓글 1개

가로 세로 크기를 고정해서 썸네일을 만들려면 현재와 같이 될 수 밖에 없습니다
원본 비율대로 축소하면 가로 또는 세로 중 하나를 고정 하고 다른 것은 비율에 맞게 축소가 되니
썸네일 크기가 일정하지않게 됩니다
위와 같은 인물 사진은 자를 부분 위치를 정해서 썸네일을 만드는 특별한 방법으로 해야하는데
질답으로 해결할 수 없습니다
자료실에 그런 기능이 들어있는 스킨이 있을 것입니다

게시글 목록

번호 제목
283716
283715
283713
283712
283705
283704
283701
283699
283697
283696
283693
283689
283685
283683
283674
283663
283660
283657
283647
283646