-
- /**
- *
- *기능: 이미지 크기 조정 또는 썸네일 생성
- *수정일: 2013-2-15
- *반환: True/False
- *매개변수:
- * $Image 필요 조정됨 이미지(경로 포함)
- * $Dw=450 조정 시 최대 너비, 섬네일 시 절대 너비
- * $Dh=450 조정 시 최대 높이
- * $ Type=1 1, 조정 크기 2, 썸네일 생성
- * 사이트 http://bbs.it-home.org
- */
- $phtypes=array('img/gif', 'img/jpg', 'img/jpeg', 'img/bmp', 'img/pjpeg', 'img/x-png')
-
- function 압축Img($Image,$Dw,$Dh,$Type){
- echo $Image
- IF(!file_exists($Image)){
- echo "이미지가 없습니다."
- return false
- }
- echo "이미지가 있습니다."; > // 썸네일을 생성해야 하는 경우 원본 이미지를 복사하여 $Image에 다시 할당합니다(썸네일 생성 작업)
- // Type==1인 경우 원본 이미지 파일은 복사되지 않지만 원본 이미지 파일이 복사됩니다. 이미지 파일에서 축소된 이미지를 다시 생성합니다(크기 조정 작업)
- IF($Type!=1){
- copy($Image,str_replace(".","_x.", $Image))
- $Image=str_replace(".","_x.",$Image);
- }
- // 파일 형식을 가져오고 형식에 따라 다른 개체를 만듭니다.
- $ImgInfo= getimagesize($Image);
- Switch($ImgInfo[2]){
- 사례 1:
- $Img =@imagecreatefromgif($Image)
- 중단
- 사례 2 :
- $Img =@imagecreatefromjpeg($Image);
- 중단;
- 사례 3:
- $Img =@imagecreatefrompng($Image);
- 중단; // 객체가 성공적으로 생성되지 않은 경우 이미지가 아닌 파일이라는 의미입니다.
- IF(Empty($Img)){
- // 썸네일 생성 시 오류가 발생하는 경우, 복사된 파일 삭제
- IF($ Type!=1){
- unlink($Image);
- }
- return false
- }
- // 크기 조정 작업이 수행된 경우 ,
- IF($Type== 1){
- $w=ImagesX($Img)
- $h=ImagesY($Img)
- $width = $w; 높이 = $h
- IF( $width>$Dw){
- $Par=$Dw/$width
- $width=$Dw
- $height=$height*$Par;
- IF($height>$Dh ){
- $Par=$Dh/$height;
- $height=$Dh
- $width=$width*$Par
- } 🎜> } ElseIF($height>$Dh ) {
- $Par=$Dh/$height;
- $height=$Dh
- $width=$width*$Par
- IF( $width>$Dw){
- $Par=$Dw/$width;
- $width=$Dw;
- $height=$height*$Par
- }
- } Else
- $width=$width;
- $height=$height;
- }
- $nImg =ImageCreateTrueColor($width,$height);// 새로운 트루 컬러 캔버스 생성
- ImageCopyReSampled( $nImg,$Img,0,0,0 ,0,$width,$height,$w,$h);//이미지 일부 복사 및 크기 조정
- ImageJpeg($nImg,$Image);/ /이미지를 브라우저나 JPEG 형식으로 출력합니다.
- return true
- } Else {// 썸네일 생성 작업을 수행하면
- $w=ImagesX($Img); h=ImagesY($Img);
- $width = $w;
- $height = $h; $nImg =ImageCreateTrueColor($Dw,$Dh)
- IF($h/$ w>$Dh/$Dw){// 높이가 더 큽니다
- $width=$Dw
- $height=$h*$Dw/$w
- $IntNH=$height-$Dh;
- ImageCopyReSampled($nImg, $Img, 0, -$IntNH/1.8, 0, 0, $Dw, $height, $w, $h)
- } Else {// 너비 비율이 큽니다
- $height=$Dh;
- $width =$w*$Dh/$h;
- $IntNW=$width-$Dw
- ImageCopyReSampled($nImg, $Img,-$IntNW/1.8 ,0,0,0, $width, $w, $h);
- }
- ImageJpeg($nImg,$Image)
- return true; ;
- ?>
-
-
- 코드 복사
-
-
2. 원격 사진 가져오기
-
- //네트워크 이미지 경로
- $imgPath = 'http://bbs.it-home.org/phone /compress-img/251139474ba926db3d7850.jpg';
- //$imgPath = "http://bbs.it-home.org/userfiles/image/20111125/251139474ba926db3d7850.jpg"
- $tempPath = str_replace( 'http://bbs.it-home.org/', '', $imgPath);//줄바꿈 문자 바꾸기
- $name = strrchr($tempPath, "/")
- $path = str_replace ($name, '', $tempPath);//개행 문자 바꾸기
-
- /**
- *경로를 기반으로 다중 레벨 디렉토리 생성
- *$dir 대상 디렉토리 $mode 권한, 0700은 가장 높은 권한을 의미
- */
- function makedir( $dir , $mode = "0700" ) {
- if(strpos($dir , "/" )){
- $dir_path = "" ;
- $dir_info = 폭발("/" , $dir )
- foreach($dir_info as $key => ; $value){
- $dir_path .= $value ;
- if (!file_exists($dir_path)){
- @mkdir($dir_path, $mode) 또는 die ("폴더 생성 실패") ;
- @chmod($dir_path, $mode);
- } else {
- $dir_path .= "/" ;
- 계속
- }
- $dir_path .= " /" ;
- }
- return $dir_path ;
- } else {
- @mkdir($dir, $mode) or die( "생성 실패, 권한을 확인하세요." ); dir, $mode);
- return $dir ;
- }
- } //makedir 종료
- makedir($path)
-
- /**
- *URL을 기준으로 서버에 있는 이미지 가져오기
- *$url서버에 있는 이미지 경로 $filename파일 이름
- * /
- function GrabImage($url,$filename="") {
- if($url=="") return false
- if($filename=="") {
- $ext =strrchr( $url,".");
- if($ext!=".gif" && $ext!=".jpg" && $ext!=".png")
- return false; filename=date("YmdHis").$ext;
- }
- ob_start()
- readfile($url)
- $img = ob_get_contents()
- $size = strlen($img)
-
- $fp2=@fopen($filename, "a")
- fwrite($fp2,$img)
- fclose ($fp2 );
- return $filename; }
- ?>
-
-
- 코드 복사
-
3.
|