이미지 리사이징..조금수정 - 열정 > Board Tip

본문 바로가기
 

이미지 리사이징..조금수정 - 열정

페이지 정보

작성자 휴먼 댓글 0건 조회 6,925회 작성일 09-11-01 18:26

본문

$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님이 알려주신 부분입니다.^^

 }
 }
 }

noimage.gif
jack 06-11-15 01:12
 211.♡.1.5 답변  
감사 합니다...
지난번 올려 주신 자료 생각만 하다가 이번에 갑자기 큰사진들이
마구 올라와서 마침 다시 고민 중이던 차에 어쩜 이리 딱 맞춰서
올려 주셨는지.....너무 감사 합니다

어찌 보답을 드려 할찌.......^^
감사 합니다... 지난번 올려 주신 자료 생각만 하다가 이번에 갑자기 큰사진들이 마구 올라와서 마침 다시 고민 중이던 차에 어쩜 이리 딱 맞춰서 올려 주셨는지.....너무 감사 합니다 어찌 보답을 드려 할찌.......^^
noimage.gif
jack 06-11-20 11:10
 211.♡.1.47 답변  
잘 되는 데요............ 한가지 단점이 있습니다.
예를 들어 저는 넓이를 1000으로 잡았는데요........
1000이상은 1000으로 잘 되는 반면에.......
1000미만[800px] 을 올려도 1000px로 다시 생성하는 듯 합니다.

정해진 사이즈 미만은 그냥 보여주는 기능은 어려울까요?
잘 되는 데요............ 한가지 단점이 있습니다. 예를 들어 저는 넓이를 1000으로 잡았는데요........ 1000이상은 1000으로 잘 되는 반면에....... 1000미만[800px] 을 올려도 1000px로 다시 생성하는 듯 합니다. 정해진 사이즈 미만은 그냥 보여주는 기능은 어려울까요?
noimage.gif
jack 06-11-25 01:59
 218.♡.72.90 답변  
$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);

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]);
// 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님이 알려주신 부분입니다.^^
 }
 }
 }
 }

중간에
if ($size[0] > $board[bo_image_width]){
그리고 마지막에
}
이렇게 추가 했습니다...

제 어설픈 이론으로는 게시판 관리자에서 정한 넓이 값보다 이미지 넓이가
크다면 이미지 리사이징을 실행 하고 아님 말고...

이렇게 되는 듯 하는 데요...

일단 저는 현재까지는 이상이 없이 잘 되는 듯 보입니다.
$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); 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]); // 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님이 알려주신 부분입니다.^^ } } } } 중간에 if ($size[0] > $board[bo_image_width]){ 그리고 마지막에 } 이렇게 추가 했습니다... 제 어설픈 이론으로는 게시판 관리자에서 정한 넓이 값보다 이미지 넓이가 크다면 이미지 리사이징을 실행 하고 아님 말고... 이렇게 되는 듯 하는 데요... 일단 저는 현재까지는 이상이 없이 잘 되는 듯 보입니다.
noimage.gif
tales.gif 테일즈고 07-02-14 15:20
 59.♡.61.197 답변  
감사합니다
감사합니다
Noth1ng.gif
Noth1ng.gif 정회준 07-04-27 00:22
 124.♡.131.40 답변  
썸네일 생성이 안될때
썸네일 생성이 안될때
tirpiz.gif
맥스팀 07-06-16 20:23
 221.♡.57.117 답변  
정말 정말 감사 드립니다..(__) 덕분에 많은 도움이 되었습니다. (__)
정말 정말 감사 드립니다..(__) 덕분에 많은 도움이 되었습니다. (__)
alpha12.gif
alpha12.gif 지러유 07-08-29 14:57
 220.♡.170.219 답변  
전체 보드에 적용시 아래와 같이 하면 될것 같네요.

// 첨부 이미지 리사이징, 아래 보드는 제외함(원size대로).
if ($bo_table != "aaaa" && $bo_table != "bbbb" ) {
$img_limit_width = 800; // 제한할 이미지 폭
$img_quality = 100; // 이미지 품질
$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 = $img_limit_width / $size[0];
$height = (int)($size[1] * $rate);
if ($size[0] > $img_limit_width){
@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($img_limit_width, $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_limit_width, $height, $size[0], $size[1]);
// imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
//이부분이 png 압축방식이어서 이미지 커졌나 봅니다.
//아래처럼 하니 줄어드는 것을 확실히 느껴집니다....^^   
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $img_quality);
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님이 알려주신 부분입니다.^^
 }
 }
 }
 }
}
전체 보드에 적용시 아래와 같이 하면 될것 같네요. // 첨부 이미지 리사이징, 아래 보드는 제외함(원size대로). if ($bo_table != "aaaa" && $bo_table != "bbbb" ) { $img_limit_width = 800; // 제한할 이미지 폭 $img_quality = 100; // 이미지 품질 $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 = $img_limit_width / $size[0]; $height = (int)($size[1] * $rate); if ($size[0] > $img_limit_width){ @unlink($data_path.'/'.$row2[bf_file]); $dst = imagecreatetruecolor($img_limit_width, $height); imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_limit_width, $height, $size[0], $size[1]); // imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]); //이부분이 png 압축방식이어서 이미지 커졌나 봅니다. //아래처럼 하니 줄어드는 것을 확실히 느껴집니다....^^ imagejpeg($dst, $data_path.'/'.$row2[bf_file], $img_quality); 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님이 알려주신 부분입니다.^^ } } } } }
noimage.gif
머루 07-10-12 19:47
 61.♡.231.216 답변  
이미지 올리기전 리사이즈
이미지 올리기전 리사이즈
noimage.gif
haandle.gif 북한산여우 09-09-29 16:53
 125.♡.169.8 답변  
이 팁... IE6에서도 잘 되나요.
첫 이미지는 이상 없는데 2번째부터는 잘 안되는 거 같은데....

댓글목록

등록된 댓글이 없습니다.

Total 59건 2 페이지
게시물 검색