이미지첨부시 올리기 전, 리사이징하는 방법 부탁드립니다. 정보
이미지첨부시 올리기 전, 리사이징하는 방법 부탁드립니다.본문
커뮤니티사이트를 운영하니 트래픽관리에 민감할 정도로 신경을 써야하는데요,
이미지 첨부시 폭이 너무 큰 이미지를 그대로 올리는건 트래픽낭비 같아서 이렇게 문의드립니다. (억지로 찌그러져서 리사이즈되는 것 역시 보기 싫기도 했구요)
설정된 폭값보다 큰 이미지 경우 설정된 폭값으로 줄여준 후(세로값 역시 비율에 맞춰서)에 서버에 저장되는 방법 좀 부탁드리겠습니다.
팁게에 있을 듯해서 찾아봐도 검색량이 장난이 아니거나 저장전 리사이징이 아닌,
저장후 강제로 리사이즈하는 방법들 뿐이어서 헤멘지 1시간만에 글로 남겨봅니다.
꼭 부탁드립니다.
댓글 전체
스킨의 write.update.skin
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path;
$img_width = 1024; //새로 만드는 이미지 사이즈
$sql2=" select * from $g4[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];
$IMG_info = getimagesize ($file);
$thum_W = $IMG_info[0] ;
if ($thum_W > $img_width) {
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 = $img_width / $size[0];
$height = (int)($size[1] * $rate);
@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($img_width, $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_width, $height, $size[0], $size[1]);
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
chmod($data_path.'/'.$row2[bf_file], 0606);
} // 네번째 그림형식확인
} //세번째 그림크기확인
} // 두번째 if
} //첫번째 for
?>
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path;
$img_width = 1024; //새로 만드는 이미지 사이즈
$sql2=" select * from $g4[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];
$IMG_info = getimagesize ($file);
$thum_W = $IMG_info[0] ;
if ($thum_W > $img_width) {
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 = $img_width / $size[0];
$height = (int)($size[1] * $rate);
@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($img_width, $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_width, $height, $size[0], $size[1]);
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
chmod($data_path.'/'.$row2[bf_file], 0606);
} // 네번째 그림형식확인
} //세번째 그림크기확인
} // 두번째 if
} //첫번째 for
?>
제가 팁게시판에 올린 내용이군요....^^
아래의 주소링크
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/8179/9e8cf3848bfbdd588cad445a042b50df
아래의 주소링크
http://www.sir.co.kr/bbs/tb.php/g4_tiptech/8179/9e8cf3848bfbdd588cad445a042b50df
근데 금방 저가 테스트를 해봤는데...좀 이상하네요..
저가 이미지를 가로 800으로 정하고..
테스트로 1024*768을 첨부했습니다.첨부후 다시 다운하니..가로 800*600으로 잘 변화는 됩니다만,
그런데..왜서 1024*768 용량은 85Kb 인데 사이즈 800*600으로 줄인후에 용량이 143Kb로 되나요?
사이트 줄이면 줄일수록 용량이 더 커진다니....이해가 안되네요...
+++++++++++
두번이나 올려봤는데...사이즈는 줄여지고,,,,용량은 더 커지고...헉~~ㅠㅠ
저가 이미지를 가로 800으로 정하고..
테스트로 1024*768을 첨부했습니다.첨부후 다시 다운하니..가로 800*600으로 잘 변화는 됩니다만,
그런데..왜서 1024*768 용량은 85Kb 인데 사이즈 800*600으로 줄인후에 용량이 143Kb로 되나요?
사이트 줄이면 줄일수록 용량이 더 커진다니....이해가 안되네요...
+++++++++++
두번이나 올려봤는데...사이즈는 줄여지고,,,,용량은 더 커지고...헉~~ㅠㅠ
적당한 사이즈 변환하는데 문제가 없었다면 해상도에서 100이 아니라 80정도도 괜찮겠죠 아니면 70그렇게 많은 차이가 없는것 같더군요...
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
위의 부분이 혹시
imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
이렇게 되지는 않았죠....^^
아래와 같이 되어져 있다면 jpeg파일로 압축될거에요..
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
위의 부분이 혹시
imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
이렇게 되지는 않았죠....^^
아래와 같이 되어져 있다면 jpeg파일로 압축될거에요..
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);