폴더안의 이미지들의 크기를 몽땅 크기조절하여 복사해보기
이런 팁이 있을란가 모르겟네요 잇다면 헛탕질한건데..
본 팁은 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();
///////////////////////////////////////////////////////////////////////////////////////////////
댓글 5개
19년 전
예 아주 멋진 팁입니다.
응용범위가 많을것 같습니다.
감사합니다.
응용범위가 많을것 같습니다.
감사합니다.
19년 전
유용한 팁입니다. 감사드려요..^___^
19년 전
감사합니다.
언젠가 제대로 한번 써볼 날이 있을것 같습니다.
언젠가 제대로 한번 써볼 날이 있을것 같습니다.
바람가득히
19년 전
정말 좋은 팁 입니다 ^^
ohora
19년 전
참 편리하겠네요. 수고하셨습니다
게시판 목록
그누4 팁자료실
그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.
나누면 즐거움이 커집니다.
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 3309 | 3년 전 | 1803 | ||
| 3308 | 11년 전 | 2092 | ||
| 3307 |
uPAmJ903
|
6년 전 | 4751 | |
| 3306 |
바른사나이
|
6년 전 | 3274 | |
| 3305 | 6년 전 | 12309 | ||
| 3304 | 7년 전 | 3704 | ||
| 3303 | 7년 전 | 3742 | ||
| 3302 |
지리산초보
|
7년 전 | 13597 | |
| 3301 |
sozet
|
8년 전 | 4903 | |
| 3300 |
sozet
|
8년 전 | 5972 | |
| 3299 |
sozet
|
8년 전 | 10862 | |
| 3298 | 8년 전 | 4015 | ||
| 3297 |
또치하우스
|
8년 전 | 4444 | |
| 3296 | 8년 전 | 11972 | ||
| 3295 |
또치하우스
|
8년 전 | 14987 | |
| 3294 | 8년 전 | 6025 | ||
| 3293 | 8년 전 | 5590 | ||
| 3292 |
|
9년 전 | 5318 | |
| 3291 | 9년 전 | 13679 | ||
| 3290 | 9년 전 | 5054 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기