Ignore:
Timestamp:
2007/07/20 15:58:59 (17 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
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
  • branches/feature-module-update/data/lib/gdthumb.php

    r12157 r15078  
    22/*  
    33 
    4 ¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡¢¡ 
    5 GD¼«Æ°¥µ¥à¥Í¥¤¥ëºîÀ® + ÃæÀÀµ2006/02/03 
     4◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 
     5GD自動サムネイル作成 + 中川修正2006/02/03 
    66 
    77Copyright 2002- Akihiro Asai. All rights reserved. 
     
    1010aki@mx3.adam.ne.jp 
    1111 
    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°Ê¹ß¡Ë   
     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□ 更新履歴 
     272002/08/19 最大縦幅の部分を一部手直し 
     282003/01/31 デフォルトでアスペクト比が固定 
     292003/04/11 最大横幅と最大縦幅を外部より指定可能 
     302003/04/25 GD2用に関数変更 
     312003/06/21 GD1/2をバージョンに応じて変更できるように修正 
     322003/06/25 imageCopyResampledの部分を修正 
     332004/01/28 スクリプト全体を書き直し。引数「pass」を「path」に変更。 
     342005/12/08 関数の自動判別 gif形式に対応 透過gif・透過pngに対応(GD2.0.1以降)   
    3535*/ 
    3636 
    37 // ¥¯¥é¥¹¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î6¹Ô¤ò¥³¥á¥ó¥È¥¢¥¦¥È 
     37// クラスとして使用する場合には、以下の6行をコメントアウト 
    3838/* 
    3939$objg = new gdthumb(); 
    4040list($Ck, $Msg) = $objg->Main($_GET["path"], $_GET["mw"], $_GET["mh"]); 
    41 if(!$Ck) { // ¥¨¥é¡¼¤Î¾ì¹ç 
     41if(!$Ck) { // エラーの場合 
    4242    header("Content-Type: text/html; charset=" . CHAR_CODE); 
    4343    print $Msg; 
     
    5252     
    5353    /* 
    54     * ¥³¥ó¥¹¥È¥é¥¯¥¿ 
     54    * コンストラクタ 
    5555    */ 
    5656    function gdthumb() { 
    5757         
    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以上の値 
    6565         
    6666    } 
    6767     
    6868    /* 
    69     * ¥µ¥à¥Í¥¤¥ë²èÁü¤ÎºîÀ® 
     69    * サムネイル画像の作成 
    7070    * string $path 
    7171    * integer $width 
     
    7575         
    7676        if(!isset($path)) { 
    77             return array(0, "¥¤¥á¡¼¥¸¤Î¥Ñ¥¹¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"); 
     77            return array(0, "イメージのパスが設定されていません。"); 
    7878        } 
    7979         
    8080        if(!file_exists($path)) { 
    81             return array(0, "»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£"); 
    82         } 
    83          
    84         // ²èÁü¤ÎÂ礭¤µ¤ò¥»¥Ã¥È 
     81            return array(0, "指定されたパスにファイルが見つかりません。"); 
     82        } 
     83         
     84        // 画像の大きさをセット 
    8585        if($width) $this->imgMaxWidth = $width; 
    8686        if($height) $this->imgMaxHeight = $height; 
     
    8989        $re_size = $size; 
    9090         
    91         //¥¢¥¹¥Ú¥¯¥ÈÈæ¸ÇÄê½èÍý 
     91        //アスペクト比固定処理 
    9292        if($this->imgMaxWidth != 0) { 
    9393            $tmp_w = $size[0] / $this->imgMaxWidth; 
     
    120120        switch($size[2]) { 
    121121             
    122             // gif·Á¼° 
     122            // gif形式 
    123123            case "1": 
    124124                if(function_exists("imagecreatefromgif")) { 
     
    138138 
    139139                    if(function_exists("imagegif")) {                        
    140                         // ²èÁü½ÐÎÏ 
     140                        // 画像出力 
    141141                        if($header){ 
    142142                            header("Content-Type: image/gif"); 
     
    146146                            $dst_file = $dst_file . ".gif"; 
    147147                            if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 
    148                                 // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë            
     148                                // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ)            
    149149                                copy($path, $dst_file); 
    150150                            } else { 
     
    155155                        imagedestroy($dst_im); 
    156156                    } else { 
    157                         // ²èÁü½ÐÎÏ 
     157                        // 画像出力 
    158158                        if($header){ 
    159159                            header("Content-Type: image/png"); 
     
    163163                            $dst_file = $dst_file . ".png"; 
    164164                            if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 
    165                                 // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë            
     165                                // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ)            
    166166                                copy($path, $dst_file); 
    167167                            } else { 
     
    173173                    } 
    174174                } else { 
    175                     // ¥µ¥à¥Í¥¤¥ëºîÀ®ÉԲĤξì¹ç¡Êµì¥Ð¡¼¥¸¥ç¥óÂкö¡Ë 
     175                    // サムネイル作成不可の場合(旧バージョン対策) 
    176176                    $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                    // 枠線と文字色の設定 
    180180                    $black = imageColorAllocate($dst_im, 0, 0, 0); 
    181181                    $red = imageColorAllocate($dst_im, 255, 0, 0); 
     
    184184                    imageRectangle ($dst_im, 0, 0, ($re_size[0]-1), ($re_size[1]-1), $black); 
    185185                     
    186                     // ²èÁü½ÐÎÏ 
     186                    // 画像出力 
    187187                    if($header){ 
    188188                        header("Content-Type: image/png"); 
     
    198198                break; 
    199199                 
    200             // jpg·Á¼° 
     200            // jpg形式 
    201201            case "2":  
    202202             
     
    206206                $imageresize( $dst_im, $src_im, 0, 0, 0, 0, $re_size[0], $re_size[1], $size[0], $size[1]); 
    207207 
    208                 // ²èÁü½ÐÎÏ 
     208                // 画像出力 
    209209                if($header){ 
    210210                    header("Content-Type: image/jpeg"); 
     
    215215                     
    216216                    if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 
    217                         // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë        
     217                        // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ)        
    218218                        copy($path, $dst_file); 
    219219                    } else { 
     
    227227                break; 
    228228     
    229             // png·Á¼°     
     229            // png形式     
    230230            case "3":  
    231231 
     
    248248                } 
    249249                 
    250                 // ²èÁü½ÐÎÏ 
     250                // 画像出力 
    251251                if($header){ 
    252252                    header("Content-Type: image/png"); 
     
    256256                    $dst_file = $dst_file . ".png"; 
    257257                    if($re_size[0] == $size[0] && $re_size[1] == $size[1]) { 
    258                         // ¥µ¥¤¥º¤¬Æ±¤¸¾ì¹ç¤Ë¤Ï¡¢¤½¤Î¤Þ¤Þ¥³¥Ô¡¼¤¹¤ë¡£(²è¼ÁÎô²½¤òËɤ°¡Ë            
     258                        // サイズが同じ場合には、そのままコピーする。(画質劣化を防ぐ)            
    259259                        copy($path, $dst_file); 
    260260                    } else { 
     
    268268                 
    269269            default: 
    270                 return array(0, "¥¤¥á¡¼¥¸¤Î·Á¼°¤¬ÉÔÌÀ¤Ç¤¹¡£"); 
     270                return array(0, "イメージの形式が不明です。"); 
    271271        } 
    272272 
Note: See TracChangeset for help on using the changeset viewer.