Changeset 11730 for branches/comu/data/lib/thumb.php
- Timestamp:
- 2007/03/11 06:27:25 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/data/lib/thumb.php
r11729 r11730 1 1 <?php 2 # MakeThumb( 出力元画像パス(ファイル名まで), 出力先フォルダ(/home/hoge/ など) , 最大横幅 , 最大縦幅 , 新ファイル名)2 # MakeThumb(½ÐÎϸµ²èÁü¥Ñ¥¹¡Ê¥Õ¥¡¥¤¥ë̾¤Þ¤Ç¡Ë, ½ÐÎÏÀè¥Õ¥©¥ë¥À¡Ê/home/hoge/ ¤Ê¤É¡Ë , ºÇÂç²£Éý , ºÇÂç½ÄÉý , ¿·¥Õ¥¡¥¤¥ë̾¡Ë 3 3 function MakeThumb($FromImgPath , $ToImgPath , $tmpMW , $tmpMH, $newFileName = ''){ 4 4 5 # ◆◇◆ デフォルト値の設定 ◆◇◆6 # 必要に応じて変更して下さい。5 # ¢¡¡þ¢¡¡¡¥Ç¥Õ¥©¥ë¥ÈÃͤÎÀßÄê¡¡¢¡¡þ¢¡ 6 # ɬÍפ˱þ¤¸¤ÆÊѹ¹¤·¤Æ²¼¤µ¤¤¡£ 7 7 8 # 画像の最大横幅(単位:ピクセル)8 # ²èÁü¤ÎºÇÂç²£Éý¡Êñ°Ì¡§¥Ô¥¯¥»¥ë¡Ë 9 9 $ThmMaxWidth = 500; 10 10 11 # 画像の最大縦幅(単位:ピクセル)11 # ²èÁü¤ÎºÇÂç½ÄÉý¡Êñ°Ì¡§¥Ô¥¯¥»¥ë¡Ë 12 12 $ThmMaxHeight = 500; 13 13 14 # サムネイル画像の接頭文字14 # ¥µ¥à¥Í¥¤¥ë²èÁü¤ÎÀÜÆ¬Ê¸»ú 15 15 $PreWord = $head; 16 16 17 # ◆◇◆ 設定ここまで ◆◇◆17 # ¢¡¡þ¢¡¡¡ÀßÄꤳ¤³¤Þ¤Ç¡¡¢¡¡þ¢¡ 18 18 19 // 拡張子取得19 //³ÈÄ¥»Ò¼èÆÀ 20 20 if (!$ext) { 21 21 $array_ext = explode(".", $FromImgPath); … … 24 24 25 25 $MW = $ThmMaxWidth; 26 if($tmpMW) $MW = $tmpMW; # $MW に最大横幅セット26 if($tmpMW) $MW = $tmpMW; # $MW¤ËºÇÂç²£Éý¥»¥Ã¥È 27 27 28 28 $MH = $ThmMaxHeight; 29 if($tmpMH) $MH = $tmpMH; # $MH に最大縦幅セット29 if($tmpMH) $MH = $tmpMH; # $MH¤ËºÇÂç½ÄÉý¥»¥Ã¥È 30 30 31 if(empty($FromImgPath) || empty($ToImgPath)){ # エラー処理32 return array(0," 出力元画像パス、または出力先フォルダが指定されていません。");31 if(empty($FromImgPath) || empty($ToImgPath)){ # ¥¨¥é¡¼½èÍý 32 return array(0,"½ÐÎϸµ²èÁü¥Ñ¥¹¡¢¤Þ¤¿¤Ï½ÐÎÏÀè¥Õ¥©¥ë¥À¤¬»ØÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"); 33 33 } 34 34 35 if(!file_exists($FromImgPath)){ # エラー処理36 return array(0," 出力元画像が見つかりません。");35 if(!file_exists($FromImgPath)){ # ¥¨¥é¡¼½èÍý 36 return array(0,"½ÐÎϸµ²èÁü¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"); 37 37 } 38 38 … … 40 40 $re_size = $size; 41 41 42 if(!$size[2] || $size[2] > 3){ # 画像の種類が不明or swf43 return array(0," 画像形式がサポートされていません。");42 if(!$size[2] || $size[2] > 3){ # ²èÁü¤Î¼ïÎबÉÔÌÀ or swf 43 return array(0,"²èÁü·Á¼°¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"); 44 44 } 45 45 46 // アスペクト比固定処理46 //¥¢¥¹¥Ú¥¯¥ÈÈæ¸ÇÄê½èÍý 47 47 $tmp_w = $size[0] / $MW; 48 48 … … 68 68 } 69 69 70 # サムネイル画像ファイル名作成処理71 $tmp = array_pop(explode("/",$FromImgPath)); # / の一番最後を切り出し72 $FromFileName = array_shift(explode(".",$tmp)); # . で区切られた部分を切り出し73 $ToFile = $PreWord.$FromFileName; # 拡張子以外の部分までを作成70 # ¥µ¥à¥Í¥¤¥ë²èÁü¥Õ¥¡¥¤¥ë̾ºîÀ®½èÍý 71 $tmp = array_pop(explode("/",$FromImgPath)); # /¤Î°ìÈֺǸå¤òÀÚ¤ê½Ð¤· 72 $FromFileName = array_shift(explode(".",$tmp)); # .¤Ç¶èÀÚ¤é¤ì¤¿Éôʬ¤òÀÚ¤ê½Ð¤· 73 $ToFile = $PreWord.$FromFileName; # ³ÈÄ¥»Ò°Ê³°¤ÎÉôʬ¤Þ¤Ç¤òºîÀ® 74 74 75 75 $ImgNew = imagecreatetruecolor($re_size[0],$re_size[1]); 76 76 77 77 switch($size[2]) { 78 case "1": //gif 形式78 case "1": //gif·Á¼° 79 79 if($tmp_w <= 1 && $tmp_h <= 1){ 80 80 if ( $newFileName ) { … … 85 85 $ToFile .= ".gif"; 86 86 } 87 if(!@copy($FromImgPath , $ToImgPath.$ToFile)) { # エラー処理88 return array(0," ファイルのコピーに失敗しました。");87 if(!@copy($FromImgPath , $ToImgPath.$ToFile)) { # ¥¨¥é¡¼½èÍý 88 return array(0,"¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"); 89 89 } 90 90 ImageDestroy($ImgNew); … … 92 92 } 93 93 94 ImageColorAllocate($ImgNew,255,235,214); // 背景色94 ImageColorAllocate($ImgNew,255,235,214); //ÇØ·Ê¿§ 95 95 $black = ImageColorAllocate($ImgNew,0,0,0); 96 96 $red = ImageColorAllocate($ImgNew,255,0,0); … … 107 107 $TmpPath = $ToImgPath.$ToFile; 108 108 @Imagepng($ImgNew,$TmpPath); 109 if(!@file_exists($TmpPath)){ # 画像が作成されていない場合110 return array(0," 画像の出力に失敗しました。");109 if(!@file_exists($TmpPath)){ # ²èÁü¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç 110 return array(0,"²èÁü¤Î½ÐÎϤ˼ºÇÔ¤·¤Þ¤·¤¿¡£"); 111 111 } 112 112 ImageDestroy($ImgNew); 113 113 return array(1,$ToFile); 114 114 115 case "2": //jpg 形式115 case "2": //jpg·Á¼° 116 116 $ImgDefault = ImageCreateFromJpeg($FromImgPath); 117 117 //ImageCopyResized( $ImgNew,$ImgDefault, 0, 0, 0, 0,$re_size[0], $re_size[1],$size[0], $size[1]); … … 127 127 $TmpPath = $ToImgPath.$ToFile; 128 128 @ImageJpeg($ImgNew,$TmpPath); 129 if(!@file_exists($TmpPath)){ # 画像が作成されていない場合130 return array(0," 画像の出力に失敗しました。<br>${ImgNew}<br>${TmpPath}");129 if(!@file_exists($TmpPath)){ # ²èÁü¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç 130 return array(0,"²èÁü¤Î½ÐÎϤ˼ºÇÔ¤·¤Þ¤·¤¿¡£<br>${ImgNew}<br>${TmpPath}"); 131 131 } 132 132 $RetVal = $ToFile; 133 133 break; 134 134 135 case "3": //png 形式135 case "3": //png·Á¼° 136 136 $ImgDefault = ImageCreateFromPNG($FromImgPath); 137 137 //ImageCopyResized($ImgNew, $ImgDefault, 0, 0, 0, 0,$re_size[0], $re_size[1],$size[0], $size[1]); … … 147 147 $TmpPath = $ToImgPath.$ToFile; 148 148 @ImagePNG($ImgNew,$TmpPath ); 149 if(!@file_exists($TmpPath)){ # 画像が作成されていない場合150 return array(0," 画像の出力に失敗しました。");149 if(!@file_exists($TmpPath)){ # ²èÁü¤¬ºîÀ®¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç 150 return array(0,"²èÁü¤Î½ÐÎϤ˼ºÇÔ¤·¤Þ¤·¤¿¡£"); 151 151 } 152 152 $RetVal = $ToFile;
Note: See TracChangeset
for help on using the changeset viewer.