이미지첨부시 올리기 전, 리사이징하는 방법 부탁드립니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

이미지첨부시 올리기 전, 리사이징하는 방법 부탁드립니다. 정보

이미지첨부시 올리기 전, 리사이징하는 방법 부탁드립니다.

본문

커뮤니티사이트를 운영하니 트래픽관리에 민감할 정도로 신경을 써야하는데요,
 
이미지 첨부시 폭이 너무 큰 이미지를 그대로 올리는건 트래픽낭비 같아서 이렇게 문의드립니다. (억지로 찌그러져서 리사이즈되는 것 역시 보기 싫기도 했구요)
 
설정된 폭값보다 큰 이미지 경우 설정된 폭값으로 줄여준 후(세로값 역시 비율에 맞춰서)에 서버에 저장되는 방법 좀 부탁드리겠습니다.
 
팁게에 있을 듯해서 찾아봐도 검색량이 장난이 아니거나 저장전 리사이징이 아닌,
저장후 강제로 리사이즈하는 방법들 뿐이어서 헤멘지 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

?>
근데 금방 저가 테스트를 해봤는데...좀 이상하네요..

저가 이미지를 가로 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]);
전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT