[1원 짜리 팁]원본의 이미지를 삭제하구 원하는 사이즈만큼 줄여보자 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

[1원 짜리 팁]원본의 이미지를 삭제하구 원하는 사이즈만큼 줄여보자 정보

[1원 짜리 팁]원본의 이미지를 삭제하구 원하는 사이즈만큼 줄여보자

본문

질답에 적는 다는 것이 여기에  쯥 나두....

원본이미지가 width=500이상일때 임의로 원본사이즈를 줄여서
db에 파일명 저장 및 파일을 data/file/bo_table/file 저장이 가능할까요?

이러한 기능이 필요한 이유는 적은 웹상의 공간을 보다 효율적 운영을 위해서
생각하다보니 되더군요...
디카로 찍은 사진들이 너무 커요....그래서 일일이 알씨로 수정할까하다가 썸네일 기능을
활용하면 좋은 결과가 있지 않을까 해서 생각해 보았습니다.

$board[bo_image_width] //------------이부분은 보드관리자 화면에서 결정하구요.
$board[bo_1]//------------------썸네일 이미지 폭
$board[bo_2]//------------------썸네일 이미지 질


write_update.skin.php에 아래와 같이 하니 잘되는군요....

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

    $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];
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);

@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]);
// imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
                                                //이부분이 png 압축방식이어서 이미지 커졌나 봅니다.
                                                //아래처럼 하니 줄어드는 것을 확실히 느껴집니다....^^   
                                                  imagejpeg($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
chmod($data_path.'/'.$row2[bf_file], 0606);
//---------->madem님이 알려주신 부분입니다.^^
$bf_size = @filesize(addslashes($file));
$sql = " update $g4[board_file_table]
set bf_filesize = '$bf_size'
where  bo_table = '$bo_table' and wr_id = '$wr_id'  ";
sql_query($sql);
 //---------->madem님이 알려주신 부분입니다.^^

 }
 }
 }
추천
7

댓글 27개

@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]);
imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
chmod($data_path.'/'.$row2[bf_file], 0606);
            $bf_size = @filesize(addslashes($file));
            $sql = " update $g4[board_file_table]
                        set bf_filesize = '$bf_size'
                      where  bo_table = '$bo_table' and wr_id = '$wr_id'  ";
            sql_query($sql);

////////////////////////////
이렇게 수정해주시면 줄어든 용량으로 표시 됩니다.
꼭 필요 했는데, 어찌 할바를 몰라서 그냥 손수 리사이징 했던
아푼 기억이 있습니다...

컴터와 안친하신분들 생각외로 많으시더라구요........

저두 추천 합니다.
컴퓨터와 안치하신분들 ㅡ _-
절대 공감합니다
저는 메인화면 최근글에 강죄 리사이즈 때문에 리사이즈 로직 찾고 있었는데
마침 잘됐네요~
이미지가 지정한 크기로 작아지기는 하지만,
저 같은 경우, 리사이즈된 이미지의 용량이... 원본과 비교해서 거의 두배정도 커집니다.
공간의 효율성을 위한 팁이라면...오히려 반대의 효과가 나오는건데.... ㅡㅡ;
다른분들은 어떠신가요?
직접 관리하는게 아니라서 보통 홈페이지 제작해놓고보면 말도안되는 크기의 이미지들을 올리던데..
이미지 줄이는방법까지 모두 알려줄수없어서 정말 고민했었네요..ㅎㅎ 간절히 찾던팁인데..덕분에 잘 적용했습니다. 너무 감사한 팁이네요..^^
위의 내용은 리스트의 썸네일을 생성하는 내용이 아닙니다.
작은 용량의 계정을 사용하는 이들을 위해서 원본의 사이즈를 줄여서 저장하는
방법이죠....리스트의 썸네일을 생성 관리 하려면 관리자님이 만드신 겔러리 스킨을
참조하시면 비율 썸이 될 것입니다.
이미지를 작은걸 올려도 이미지가 설정크기로 커져버리네요..
원본를 수정본으로 바꾸니까 잘되네요..

//원본
$rate = $board[bo_image_width] / $size[0];
$height = (int)($size[1] * $rate);

@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]);

//수정본.
$rate = $board[bo_image_width] / $size[0];
if ($size[0] <= $board[bo_image_width]) $rate=1;
$width = (int)($size[0] * $rate);
$height = (int)($size[1] * $rate);

@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($width, $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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