갤러리목록 이미지 사이즈?
본문

겔러리 리스트화면에 위처험 이미지의 폭을 기준으로 보여주기때문에
이미지의 높이가 작으면 너무 어정쩡하게 노출이 됩니다.
이미지의 높이가 작은 파일의 경우 폭이아닌 높이를 기준으로 썸네일이 생성되게 하고 싶습니다.
아님 이게 어렵다면 테이블이라도 높이에 맞게 조정하고 싶습니다.
적용방법좀 도와주세요.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
//if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
// 썸네일 설정
$thumb_width = "130"; //썸네일 가로길이
$thumb_height = "110"; //썸네일 세로길이
$thumb_quality = "100"; //퀼리티 100이하로 설정
$list_content = "200"; //내용길이
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumbphoto';
@mkdir($thumb_path, 0707);
@chmod($thumb_path, 0707);
$mod = $board[bo_gallery_cols];
$td_width = (int)(100 / $mod);
include_once($board_skin_path . '/lib/skin.lib.php');
?>
<script language="JavaScript">
// 검색창펼치기
function togglelist(){
if(document.getElementById('hidden3').style.display==""){
document.getElementById('hidden3').style.display="none";
}else{
document.getElementById('hidden3').style.display="";
}
}
</script>
<script type="text/javascript" src="<?php echo $board_skin_path; ?>/js/list.skin.js" charset="<?php echo $g4['charset']; ?>"></script>
<!-- 게시판 목록 시작 -->
<link href="css/webbus01.css" rel="stylesheet" type="text/css" />
<table width="100%" align=center cellpadding=0 cellspacing=0 bgcolor="#FFFFFF">
<tr><td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr height="25">
<td>
<form method="get" name="fcategory" id="fcategory" style="margin:0; padding:0;">
<font face="Dotum" color="#999999"><span class="gray8s" style="font-size:9pt;"><?=$group[gr_subject]?></span><span class="gray6s" style="font-size:9pt;">> </span></font><font face="Dotum" color="#FF6600"><span class="purples" style="font-size:9pt;"><b><?=$board[bo_subject]?></b></span></font>
<? if ($is_category) { ?>
<select name="sca2" onchange="location='<?=$category_location?>'+this.value;">
<option value=''>전체</option>
<?=$category_option?>
</select>
<? } ?>
</form></td>
<td align="right">
<font face="Dotum" color="#999999"><span class="gray8s" style="font-size:9pt;">전체 </span></font><font face="Dotum" color="#666666"><span class="blue2s" style="font-size:9pt;"><?=number_format($total_count)?></span></font>
<!--등록/조회/추천-->
<font face="돋움" color="#999999"><span class="gray8s" style="font-size:9pt;"> <?=subject_sort_link('wr_datetime', $qstr2, 1)?>
등록일</span></font><span class="gray8s"> </span><font color="#E4E4E4"><span style="font-size:9pt;">| </span></font><font face="돋움" color="#999999"><span class="gray8s" style="font-size:9pt;"><?=subject_sort_link('wr_hit', $qstr2, 1)?>조회</span></font><span class="gray8s"> </span><font color="#E4E4E4"><span style="font-size:9pt;">| </span></font><font face="돋움" color="#999999"><span class="gray8s" style="font-size:9pt;"><?=subject_sort_link('wr_good', $qstr2, 1)?>추천 </span></font>
<!--등록/조회/추천끝-->
<? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border=0 align=absmiddle></a><?}?>
<!--목록,웹진,갤러리선택--> <a href="<?=$board_skin_path?>/command.php?bo_table=<?=$board['bo_table']?>&type=list"><img src="<?=$board_skin_path?>/img/b_list.gif" alt="일반목록" border="0" /></a> <a href="<?=$board_skin_path?>/command.php?bo_table=<?=$board['bo_table']?>&type=news"><img src="<?=$board_skin_path?>/img/b_news.gif" alt="뉴스목록" border="0" /></a> <a href="<?=$board_skin_path?>/command.php?bo_table=<?=$board['bo_table']?>&type=photo"><img src="<?=$board_skin_path?>/img/b_photo2.gif" alt="포토목록" border="0" /></a>
<!--목록,웹진,갤러리선택끝-->
</td>
</tr>
<tr>
<td height="5"></td>
</tr>
</table>
<!-- 제목 -->
<form name="fboardlist" method="post" style="margin:0;">
<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=''>
<div style="font-size:1px; line-height:1px; background-color: #e0e0e0; height:1px; clear:both;"> </div>
<!--
<div style="font-size:1px; line-height:1px; background-color: #d0d0d0; height:1px; clear:both;"> </div>
<div style="font-size:1px; line-height:1px; background-image:url('<?=$board_skin_path?>/img/title_shadow.gif'); background-repeat:repeat-x; height:3px;"></div>
-->
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr>
<?
for ($i=0; $i<count($list); $i++)
{
if ($i && $i%$mod==0)
echo "</tr><tr>";
//썸네일 생성
$thumfile = "";
$thumb = $thumb_path.'/'.$list[$i][wr_id];
// 썸네일 이미지가 존재하지 않는다면
if (!file_exists($thumb)) {
$file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
// 업로드된 파일이 이미지라면
if (preg_match("/\.(jpg|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][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
} else { //게디터에서 삽입한 이미지 뽑자ㅠㅠ
$edit_img = $list[$i]['wr_content'];
if (eregi("data/cheditor4[^<>]*\.(gif|jp[e]?g|png|bmp)", $edit_img, $tmp)) { // data/cheditor------
$file = '../' . $tmp[0]; // 파일명
$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][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
}
}
}
//이미지
if (file_exists($thumb))
$thumfile = "<img src='{$thumb}' border='0'>";
else
//이미지가 없으면
$thumfile="";
//이미지가 아니네
if(preg_match("/\.(swf|wma|asf)$/i","$file") && file_exists($file)){
$thumfile = "<script>doc_write(flash_movie('$file', 'flash$i', '$thumb_width', '$thumb_height', 'transparent'));</script>";
}
$style = "";
if ($list[$i][is_notice]) $style = " style='font-weight:bold;'";
$subject = "<span class='gray3'>".cut_str($list[$i][subject],36)."</span>";
$comment_cnt = "";
if ($list[$i][comment_cnt])
$comment_cnt = " <a href=\"{$list[$i][comment_href]}\"><span style='font-family:Tahoma;font-size:10px;color:#FF4326;'><strong>{$list[$i][comment_cnt]}</strong></span></a>";
echo "<td width='{$td_width}%' valign=top style='word-break:break-all;'>";
echo "<table width={$thumb_width} align='center' style='padding:0px 10px 0px 10px;'>";
echo "<tr><td height=5></td></tr>";
//echo "<tr><td><div style='float:left;'><span style='font:normal 9px tahoma; color:#666666;'>{$list[$i][datetime]}</span> {$list[$i][icon_new]} {$list[$i][icon_file]} {$list[$i][icon_link]}</div>";
//echo "<div style='float:right;'><span style='font:normal 9px tahoma; color:#999999;'>view:</span><span style='font:normal 8.5px tahoma; color:#777777;'>{$list[$i][wr_hit]}</span></div></td></tr>";
echo "<tr><td align=center width={$thumb_width} style='padding:0px 0px 5px 0px;'><div style='border:1px solid #EBEBEB; background-color:#F7F7F7; width:$thumb_width; height:$thumb_height;'><a href='{$list[$i][href]}'>$thumfile</a></div></td></tr>";
if ($is_category) echo "<tr><td align=center><a href='{$list[$i][ca_name_href]}'><span class=gal2s><span style='font:normal 9px tahoma; color:#999999;'>[{$list[$i][ca_name]}]</span></span></a></td></tr>";
echo "<tr><td align=center><a href='{$list[$i][href]}'>$subject</a>{$comment_cnt}</td></tr>";
//if ($is_category) echo "<tr><td align=center><a href='{$list[$i][ca_name_href]}'><span class=gal2s><span style='font:normal 9px tahoma; color:#999999;'>[{$list[$i][ca_name]}]</span></span></a></td></tr>";
//if ($is_good) echo "<tr><td align=center><span style='font:normal 9px Dotum; color:#999999;'>좋아요</span><span class='oranges'><span style='font:normal 8.5px tahoma; color:#666666;'>{$list[$i][wr_good]}</span></span></tr>";
echo "<tr><td align=center>
<span class='gray2s'><span style='font:normal 12px tahoma; color:#666666;'><?=level_icon($list[$i][mb_id])?><?=$list[$i][name]?></span></span></tr>";
echo "<tr><td align=center>
<span style='font:normal 11px tahoma; color:#ff6600;'>view: </span><span style='font:normal 11px tahoma; color:#ff6600;'>{$list[$i][wr_hit]}</span>
<span style='font:normal 10px tahoma; color:#DCDCDC;'> | </span>
<span style='font:normal 11px Dotum; color:#ff6600;'>좋아요: </span><span class='oranges'><span style='font:normal 11px tahoma; color:#ff6600;'>{$list[$i][wr_good]}</span></span></tr>";
if ($is_checkbox) echo "<tr><td align=center><input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'></td></tr>";
echo "<tr><td height=5></td></tr>";
echo "</table></td>\n";
}
// 나머지 td
$cnt = $i%$mod;
if ($cnt)
for ($i=$cnt; $i<$mod; $i++)
echo "<td width='1'> </td>";
?>
</tr>
<tr><td colspan=<?=$colspan?> height=1 bgcolor=#cccccc></td></tr>
<? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
</table>
</form>
<!--내용출력끝-->
<div style="margin-top:7px; height:31px; clear:both;">
<div style="float:left;">
<? if ($list_href) { ?>
<a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" align="absmiddle" border="0"></a>
<? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" align="absmiddle" border="0"></a>
<a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" align="absmiddle" border="0"></a>
<a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" align="absmiddle" border="0"></a>
<? } ?>
</div>
<div style="float:right;">
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border="0"></a><? } ?>
</div>
</div>
<!-- 아래라인 숨기기
<div style="height:1px; line-height:1px; font-size:1px; background-color:#eee; clear:both;"> </div>
<div style="height:1px; line-height:1px; font-size:1px; background-color:#ddd; clear:both;"> </div>
-->
<!-- 페이지 -->
<div style="font-family:gulim; text-align:center; line-height:30px; margin-top:5px; margin-right:0; margin-bottom:5px; margin-left:0; padding-top:5px; padding-right:0; padding-bottom:5px; padding-left:0; clear:both;">
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/page_search_prev.gif' border=0 align=absmiddle title='이전검색'></a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/page_begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/page_prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/page_next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/page_end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "<b><span style=\"color:#B3B3B3; font-size:12px;\">$1</span></b>", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><span style=\"color:#4D6185; font-size:12px; text-decoration:underline;\">$1</span></b>", $write_pages);
?>
<?=$write_pages?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/page_search_next.gif' border=0 align=absmiddle title='다음검색'></a>"; } ?>
</div>
<div style="height:8px;"></div>
<!--검색창 숨기기,펼치기 명령 -->
<div align="center" class="gray3s">
<a href="javascript:togglelist()" style="text-decoration:underline; color:#515151"><strong>검색하려면 클릭</strong></a></div>
<!--검색창 숨기기,펼치기 명령 끝 -->
<!-- 검색창 숨기기,펼치기 -->
<div id="hidden3">
<!-- 검색시작 -->
<div style="text-align:center;">
<form name=fsearch method=get style="margin:0px;">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<select name=sfl style="background-color:#f6f6f6; border:1px solid #7f9db9; height:21px;">
<option value='wr_subject'>제목</option>
<option value='wr_content'>내용</option>
<option value='wr_subject||wr_content'>제목+내용</option>
<option value='mb_id,1'>회원아이디</option>
<option value='mb_id,0'>회원아이디(코)</option>
<option value='wr_name,1'>글쓴이</option>
<option value='wr_name,0'>글쓴이(코)</option>
</select>
<input name=stx maxlength=15 itemname="검색어" required value='<?=$stx?>' style="width:204px; background-color:#f6f6f6; border:1px solid #7f9db9; height:21px;">
<input type=image src="<?=$board_skin_path?>/img/btn_search.gif" border=0 align=absmiddle>
<input type=radio name=sop value=and>and
<input type=radio name=sop value=or>or
</form>
</div>
<!-- 검색끝 -->
</div>
<!-- 검색창 숨기기,펼치기끝 -->
</td></tr></table>
<script language="JavaScript">
if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';
if ('<?=$stx?>') {
document.fsearch.sfl.value = '<?=$sfl?>';
if ('<?=$sop?>' == 'and')
document.fsearch.sop[0].checked = true;
if ('<?=$sop?>' == 'or')
document.fsearch.sop[1].checked = true;
} else {
document.fsearch.sop[0].checked = true;
}
</script>
<? if ($is_checkbox) { ?>
<script language="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=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
답변을 작성하시기 전에 로그인 해주세요.