폴더안의 이미지들의 크기를 몽땅 크기조절하여 복사해보기 > 그누4 팁자료실

그누4 팁자료실

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

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

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

본문

이런 팁이 있을란가 모르겟네요 잇다면 헛탕질한건데..
본 팁은 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

댓글 5개

전체 23 |RSS
그누4 팁자료실 내용 검색

회원로그인

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