폴더안의 이미지들의 크기를 몽땅 크기조절하여 복사해보기 정보
폴더안의 이미지들의 크기를 몽땅 크기조절하여 복사해보기본문
이런 팁이 있을란가 모르겟네요 잇다면 헛탕질한건데..
본 팁은 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();
///////////////////////////////////////////////////////////////////////////////////////////////
본 팁은 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();
///////////////////////////////////////////////////////////////////////////////////////////////
추천
1
1
댓글 5개
예 아주 멋진 팁입니다.
응용범위가 많을것 같습니다.
감사합니다.
응용범위가 많을것 같습니다.
감사합니다.
유용한 팁입니다. 감사드려요..^___^
감사합니다.
언젠가 제대로 한번 써볼 날이 있을것 같습니다.
언젠가 제대로 한번 써볼 날이 있을것 같습니다.
정말 좋은 팁 입니다 ^^
참 편리하겠네요. 수고하셨습니다