Changeset 15078 for branches/feature-module-update/data/lib/gdthumb.php
- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/data/lib/gdthumb.php
r12157 r15078 2 2 /* 3 3 4 ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡ 5 GD ¼«Æ°¥µ¥à¥Í¥¤¥ëºîÀ® + ÃæÀÀµ2006/02/034 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 5 GD自動サムネイル作成 + 中川修正2006/02/03 6 6 7 7 Copyright 2002- Akihiro Asai. All rights reserved. … … 10 10 aki@mx3.adam.ne.jp 11 11 12 ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡ 13 14 ¢¢ µ¡Ç½³µÍ× 15 ¡¦»ØÄꤵ¤ì¤¿¥¤¥á¡¼¥¸¤Î¥µ¥à¥Í¥¤¥ë¤òɽ¼¨¤·¤Þ¤¹¡£ 16 ¡¦½ÐÎϤ¹¤ëÂ礤µ¤ò»ØÄꤹ¤ë»ö¤¬¤Ç¤¤Þ¤¹¡£ 17 ¡¦½ÐÎϤµ¤ì¤ë¥¤¥á¡¼¥¸¤Î¥¢¥¹¥Ú¥¯¥ÈÈæ¤Ï°Ý»ý¤µ¤ì¤Þ¤¹¡£ 18 19 ¢¢ »ÈÍÑÊýË¡ 20 »ØÄê¤Ïgdthumb.php?path=xxx/xxx.[ jpg | png | gif ]&mw=xx&mh=xx21 ¢¨ pass¤ÎÉôʬ¤Ë¤Ï²èÁü¤Ø¤Î¥Ñ¥¹¤ò»ØÄê 22 ¢¨ mw¤Ëɽ¼¨²èÁü¤ÎºÇÂç²£Éý¡¢mh¤Ëɽ¼¨²èÁü¤ÎºÇÂç²£Éý¤ò³°Éô¤è¤ê»ØÄê²Äǽ¡£ 23 ¢¨ »ØÄꤷ¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄêÃͤòºÎÍÑ¡£ 24 ¡ú¥¯¥é¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¤Ï¡¢¡Ö¥¯¥é¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¦¡¦¡¦¡×°Ê¹ß¤ò¥³¥á¥ó¥È¥¢¥¦¥È¤·¤Æ²¼¤µ¤¤¡£ 25 26 ¢¢ ¹¹¿·ÍúÎò 27 2002/08/19 ºÇÂç½ÄÉý¤ÎÉôʬ¤ò°ìÉô¼êľ¤·28 2003/01/31 ¥Ç¥Õ¥©¥ë¥È¤Ç¥¢¥¹¥Ú¥¯¥ÈÈ椬¸ÇÄê29 2003/04/11 ºÇÂç²£Éý¤ÈºÇÂç½ÄÉý¤ò³°Éô¤è¤ê»ØÄê²Äǽ30 2003/04/25 GD2 ÍѤ˴ؿôÊѹ¹31 2003/06/21 GD1/2 ¤ò¥Ð¡¼¥¸¥ç¥ó¤Ë±þ¤¸¤ÆÊѹ¹¤Ç¤¤ë¤è¤¦¤Ë½¤Àµ32 2003/06/25 imageCopyResampled ¤ÎÉôʬ¤ò½¤Àµ33 2004/01/28 ¥¹¥¯¥ê¥×¥ÈÁ´ÂΤò½ñ¤Ä¾¤·¡£°ú¿ô¡Öpass¡×¤ò¡Öpath¡×¤ËÊѹ¹¡£34 2005/12/08 ´Ø¿ô¤Î¼«Æ°È½ÊÌ gif·Á¼°¤ËÂбþ Æ©²ágif¡¦Æ©²ápng¤ËÂбþ¡ÊGD2.0.1°Ê¹ß¡Ë12 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 13 14 □ 機能概要 15 ・指定されたイメージのサムネイルを表示します。 16 ・出力する大きさを指定する事ができます。 17 ・出力されるイメージのアスペクト比は維持されます。 18 19 □ 使用方法 20 指定は gdthumb.php?path=xxx/xxx.[ jpg | png | gif ]&mw=xx&mh=xx 21 ※ passの部分には画像へのパスを指定 22 ※ mwに表示画像の最大横幅、mhに表示画像の最大横幅を外部より指定可能。 23 ※ 指定しなかった場合はデフォルトの設定値を採用。 24 ★クラスとして使用する場合は、「クラスとして使用する場合には・・・」以降をコメントアウトして下さい。 25 26 □ 更新履歴 27 2002/08/19 最大縦幅の部分を一部手直し 28 2003/01/31 デフォルトでアスペクト比が固定 29 2003/04/11 最大横幅と最大縦幅を外部より指定可能 30 2003/04/25 GD2用に関数変更 31 2003/06/21 GD1/2をバージョンに応じて変更できるように修正 32 2003/06/25 imageCopyResampledの部分を修正 33 2004/01/28 スクリプト全体を書き直し。引数「pass」を「path」に変更。 34 2005/12/08 関数の自動判別 gif形式に対応 透過gif・透過pngに対応(GD2.0.1以降) 35 35 */ 36 36 37 // ¥¯¥é¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î6¹Ô¤ò¥³¥á¥ó¥È¥¢¥¦¥È37 // クラスとして使用する場合には、以下の6行をコメントアウト 38 38 /* 39 39 $objg = new gdthumb(); 40 40 list($Ck, $Msg) = $objg->Main($_GET["path"], $_GET["mw"], $_GET["mh"]); 41 if(!$Ck) { // ¥¨¥é¡¼¤Î¾ì¹ç41 if(!$Ck) { // エラーの場合 42 42 header("Content-Type: text/html; charset=" . CHAR_CODE); 43 43 print $Msg; … … 52 52 53 53 /* 54 * ¥³¥ó¥¹¥È¥é¥¯¥¿54 * コンストラクタ 55 55 */ 56 56 function gdthumb() { 57 57 58 // ¥¹¥¯¥ê¥×¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÀßÄê59 60 // ²èÁü¤ÎºÇÂç²£Éý61 $this->imgMaxWidth = 240; // 1 °Ê¾å¤ÎÃÍ62 63 // ²èÁü¤ÎºÇÂç½ÄÉý64 $this->imgMaxHeight = 0; // »ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï0 »ØÄꤹ¤ë¾ì¹ç¤Ï1°Ê¾å¤ÎÃÍ58 // スクリプトのデフォルト設定 59 60 // 画像の最大横幅 61 $this->imgMaxWidth = 240; // 1以上の値 62 63 // 画像の最大縦幅 64 $this->imgMaxHeight = 0; // 指定しない場合は0 指定する場合は1以上の値 65 65 66 66 } 67 67 68 68 /* 69 * ¥µ¥à¥Í¥¤¥ë²èÁü¤ÎºîÀ®69 * サムネイル画像の作成 70 70 * string $path 71 71 * integer $width … … 75 75 76 76 if(!isset($path)) { 77 return array(0, " ¥¤¥á¡¼¥¸¤Î¥Ñ¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");77 return array(0, "イメージのパスが設定されていません。"); 78 78 } 79 79 80 80 if(!file_exists($path)) { 81 return array(0, " »ØÄꤵ¤ì¤¿¥Ñ¥¹¤Ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£");82 } 83 84 // ²èÁü¤ÎÂ礤µ¤ò¥»¥Ã¥È81 return array(0, "指定されたパスにファイルが見つかりません。"); 82 } 83 84 // 画像の大きさをセット 85 85 if($width) $this->imgMaxWidth = $width; 86 86 if($height) $this->imgMaxHeight = $height; … … 89 89 $re_size = $size; 90 90 91 // ¥¢¥¹¥Ú¥¯¥ÈÈæ¸ÇÄê½èÍý91 //アスペクト比固定処理 92 92 if($this->imgMaxWidth != 0) { 93 93 $tmp_w = $size[0] / $this->imgMaxWidth; … … 120 120 switch($size[2]) { 121 121 122 // gif ·Á¼°122 // gif形式 123 123 case "1": 124 124 if(function_exists("imagecreatefromgif")) { … … 138 138 139 139 if(function_exists("imagegif")) { 140 // ²èÁü½ÐÎÏ140 // 画像出力 141 141 if($header){ 142 142 header("Content-Type: image/gif"); … … 146 146 $dst_file = $dst_file . ".gif"; 147 147 if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 148 // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë148 // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ) 149 149 copy($path, $dst_file); 150 150 } else { … … 155 155 imagedestroy($dst_im); 156 156 } else { 157 // ²èÁü½ÐÎÏ157 // 画像出力 158 158 if($header){ 159 159 header("Content-Type: image/png"); … … 163 163 $dst_file = $dst_file . ".png"; 164 164 if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 165 // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë165 // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ) 166 166 copy($path, $dst_file); 167 167 } else { … … 173 173 } 174 174 } else { 175 // ¥µ¥à¥Í¥¤¥ëºîÀ®ÉԲĤξì¹ç¡Êµì¥Ð¡¼¥¸¥ç¥óÂкö¡Ë175 // サムネイル作成不可の場合(旧バージョン対策) 176 176 $dst_im = imageCreate($re_size[0], $re_size[1]); 177 imageColorAllocate($dst_im, 255, 255, 214); // ÇØ·Ê¿§178 179 // ÏÈÀþ¤Èʸ»ú¿§¤ÎÀßÄê177 imageColorAllocate($dst_im, 255, 255, 214); //背景色 178 179 // 枠線と文字色の設定 180 180 $black = imageColorAllocate($dst_im, 0, 0, 0); 181 181 $red = imageColorAllocate($dst_im, 255, 0, 0); … … 184 184 imageRectangle ($dst_im, 0, 0, ($re_size[0]-1), ($re_size[1]-1), $black); 185 185 186 // ²èÁü½ÐÎÏ186 // 画像出力 187 187 if($header){ 188 188 header("Content-Type: image/png"); … … 198 198 break; 199 199 200 // jpg ·Á¼°200 // jpg形式 201 201 case "2": 202 202 … … 206 206 $imageresize( $dst_im, $src_im, 0, 0, 0, 0, $re_size[0], $re_size[1], $size[0], $size[1]); 207 207 208 // ²èÁü½ÐÎÏ208 // 画像出力 209 209 if($header){ 210 210 header("Content-Type: image/jpeg"); … … 215 215 216 216 if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 217 // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë217 // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ) 218 218 copy($path, $dst_file); 219 219 } else { … … 227 227 break; 228 228 229 // png ·Á¼°229 // png形式 230 230 case "3": 231 231 … … 248 248 } 249 249 250 // ²èÁü½ÐÎÏ250 // 画像出力 251 251 if($header){ 252 252 header("Content-Type: image/png"); … … 256 256 $dst_file = $dst_file . ".png"; 257 257 if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 258 // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë258 // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ) 259 259 copy($path, $dst_file); 260 260 } else { … … 268 268 269 269 default: 270 return array(0, " ¥¤¥á¡¼¥¸¤Î·Á¼°¤¬ÉÔÌÀ¤Ç¤¹¡£");270 return array(0, "イメージの形式が不明です。"); 271 271 } 272 272
Note: See TracChangeset
for help on using the changeset viewer.