업로드 사진 크기를 줄여서 저장하는 기능이 있나요?
본문
사진동호회 홈페이지를 G5.0.43 + APMS테마를 이용하여 운영중입니다.
사진동호회 홈페이지의 특성상 DSLR카메라로 촬영한 고화소의 사진을 많이 업로드 하게 되는데,
많은 분들이 원본사진을 리사이즈 하지않고(귀찮아서...) 원본크기 그대로 올리고 있습니다.
이렇게 등록되고 나면
상세화면의 사진은 보드설정에서 지정된 크기에 맞춰서 나오지만, 클릭하면 원본크기 그대로 보이더군요.
서버부하는 물론, 사진 로딩 시간도 더 걸리고, 디스크 용량도 향후 걱정됩니다.
그래서 업로드 파일크기로 제한을 거는 방법보다는 시스템(프로그램) 적으로 해결할 수 있으면 더 좋겠습니다.
사진크기를 자동으로 줄여서 올리는 방법이나 팁 아시는분은 가능한 구체적으로 좀 알려주시면 고맙겠습니다. 아마도 많은 분들이 필요로 하는 기능인듯 한데, 방법이 없나요?
* 검색을 해보니 쎔네일은 줄이는 방법이 있는듯 한데, 이 사안과는 다른듯 합니다.
답변 3
$data_path = G5_DATA_URL.'/file/'.$bo_table;
$sql2=" select * from $g5[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no asc";
$results2 = sql_query($sql2);
for ($d=0; $row2=sql_fetch_array($results2); $d++) {
if ($_FILES['bf_file']['name'][$d]) {
$file = $data_path .'/'. $row2['bf_file'];
if (preg_match("/\.(jp[e]?g|gif|png)$/i", $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
break;
$rate = $board['bo_image_width'] / $size[0];
$height = (int)($size[1] * $rate);
if ($size[0] > $board['bo_image_width']){
@unlink($data_path.'/'.$row2['bf_file']);
$dst = imagecreatetruecolor($board['bo_image_width'], $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $board['bo_image_width'], $height, $size[0], $size[1]);
imagejpeg($dst, $data_path.'/'.$row2['bf_file'], 100);
// imagepng($dst, $data_path.'/'.$row2[bf_file], 100);
chmod($data_path.'/'.$row2['bf_file'], 0606);
$temp = getimagesize(addslashes($file));
$filesize = filesize($file);
$sql = " update $g5[board_file_table]
set bf_filesize = '{$filesize}',
bf_width = '{$temp[0]}',
bf_height = '{$temp[1]}'
where bo_table = '$bo_table'
and wr_id = '$wr_id'
and bf_no = '$d' ";
sql_query($sql);
}
}
}
}
write_update.skin.php
$board['bo_image_width'] 게시판 가로지정 사이즈로 수정됩니다.
네이버에서 "사진 용량 줄이기"로만 검색해도 결과 많이 나옵니다.
아예 줄이는 방법은 늘 하는 답변이지만 프로그래머시면 직접 소스를 수정하고
아니면 제작의뢰 하시는 방법이 있습니다.
한가지 팁을 드리자면 업로드 할때 줄이면 서버의 디스크 용량을 절약할수 있지만 업데이트 할때마다 번거로워집니다.
하여 권장하는 방법은 관리자 화면에서 별도의 프로그램을 만들어서 "사진용량 줄이기" 버튼이나 링크를 누르면 서버에 올려진 이미지의 용량을 일괄적으로 줄이게 하면 나중에 그누보드5 최신버젼으로 업데이트 해도 별 영향이 없어서 좋습니다.
그누5쪽은 아직 오픈된 정보를 본 적은 없는 것 같습니다.
그누4에는 있었는데 파일 업로드시 썸네일을 생성해서 썸네일을 원본이미지를 대신해서 올리는 방식이었습니다.
http://sir.co.kr/g4_tiptech/30620
될지는 모르겠지만 참고해서 그누5용 썸네일 함수로 시도해보셔도 될 것 같네요.