테스트 사이트 - 개발 중인 베타 버전입니다

폴더안의 이미지들의 크기를 몽땅 크기조절하여 복사해보기

이런 팁이 있을란가 모르겟네요 잇다면 헛탕질한건데..
본 팁은 img 디렉토리안에 이미지가 100개 들어있고 이미지 크기는 모두 500픽셀이라고 할때
중이미지(250픽셀),소이미지(100픽셀)을 자동 생성하는 팁입니다

원본이미지가 img/a.jpg(500픽셀)이면 => img/test 디렉토리에 1-a.jpg(100픽셀),2-a.jpg(250픽셀)로 자동생성된다는것입니다

응용할수 있는 곳)
1. 쇼핑몰 소,중,대 이미지 올릴때 대이미지만 올리고 소,중이미지는 자동생성되게할수있다
2. 디카로 찍은 사진의 사이즈를 일괄 배치처리로 리사이즈 => 홈피 용량 최적화


테스트방법 img 폴더에 img_resize.php를 넣어두고 역시 이 안에 가로 500픽셀인 이미지 a.jpg,b.jpg,c.jpg를 넣어두고 img/test 디렉토리를 생성한다


브라우져열어서 http://테스트주소/img/img_resize.php를 실행시킨다
그러면 img/test에 1-a.jpg,2-a.jpg,1-b.jpg,2-b.jpg,1-c.jpg,2-c.jpg 파일이 생성된다

단, GD라이브러리 지원이 되어야 함(요즘 이거 안되는데 없음)


======아래부터는 img_resize.php 내용임다============

function image_chksize($x, $y, $thumbx, $thumby) {
if($x > $thumbx) {
$overx = ($x - $thumbx) / $x;
$x = $thumbx;
$y = intval($y - ($y * $overx));
}
if($y > $thumby) {
$overy = ($y - $thumby) / $y;
$y = $thumby;
$x = intval($x - ($x * $overy));
}

return array('x'=>$x, 'y'=>$y);
}

function image_resize($thumbx,$thumby, $file, $destfile) {
$size = getimagesize($file);
if(is_array($size) && !is_file($destfile)) {
switch($size[2]) {
case(1) :
if(function_exists('ImageCreateFromGif')) $im = ImageCreateFromGif($file);
break;
case(2) :
if(function_exists('ImageCreateFromJpeg')) $im = ImageCreateFromJpeg($file);
break;
case(3) :
if(function_exists('ImageCreateFromPng')) $im = ImageCreateFromPng($file);
break;
}

$fixsize = image_chksize($size[0], $size[1], $thumbx, $thumby);

if($im) {
if($i==0) @exec("rm ".dirname($_SERVER[SCRIPT_FILENAME]).$create_directory."/*Thumb-rf");
if(function_exists('ImageCreateTrueColor')) $newim = ImageCreateTrueColor($fixsize[x],$fixsize[y]);
else $newim = ImageCreate($fixsize[x],$fixsize[y]);
if(function_exists('ImageCopyResampled')) ImageCopyResampled($newim,$im,0,0,0,0,$fixsize[x],$fixsize[y],$size[0],$size[1]);
else ImageCopyResized($newim,$im,0,0,0,0,$fixsize[x],$fixsize[y],$size[0],$size[1]);
ImageDestroy($im);
ImageJpeg($newim, $destfile, 100);
ImageDestroy($newim);
unset($im, $newim);
}
}
}

$dest_dir="."; //현재 디렉토리
$create_dir="test"; //리사이즈후 저장될 디렉토리

$d = dir($dest_dir);
while (false !== ($file = $d->read())) {//#######################
if( $file !="." && $file !=".." ) {//~~~~~~~~~~~~~~~~~
if (preg_match("/\.(jp[e]?g|gif|png)$/i", $file)) { //@@@@@@@@@

$thumbx=100;
$thumby=100;
$destfile =$create_dir."/1-".$file;
image_resize($thumbx,$thumby, $file, $destfile);///////////////////소이미지생성

$thumbx=250;
$thumby=250;
$destfile =$create_dir."/2-".$file;
image_resize($thumbx,$thumby, $file, $destfile);///////////////////중이미지생성

}//@@@@@@@@
}//~~~~~~~~~~~~~~~
}//####################
$d->close();
///////////////////////////////////////////////////////////////////////////////////////////////

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 5개

예 아주 멋진 팁입니다.
응용범위가 많을것 같습니다.
감사합니다.
유용한 팁입니다. 감사드려요..^___^
감사합니다.

언젠가 제대로 한번 써볼 날이 있을것 같습니다.
정말 좋은 팁 입니다 ^^
참 편리하겠네요. 수고하셨습니다

게시판 목록

그누4 팁자료실

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