Changeset 18145


Ignore:
Timestamp:
2009/06/29 15:32:01 (11 years ago)
Author:
kajiwara
Message:

#414 ソース中に混入しているタブを半角スペース(×4)に置換。

Location:
branches/version-2_4/data
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_4/data/class/SC_MobileImage.php

    r18006 r18145  
    6969            if ($carrier == "docomo" or $carrier == "softbank") { 
    7070                if( $result != false && $result > 0){ 
    71                     // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 - 変換後の画像名のバイト数(目安値) ) / HTML中の画像数 
    72                     $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result; 
    73                 } else { 
    74                     // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 ) 
    75                     $temp_imagefilesize = ($cacheSize - strlen($buffer) ); 
    76                 } 
     71                    // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 - 変換後の画像名のバイト数(目安値) ) / HTML中の画像数 
     72                    $temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result; 
     73                } else { 
     74                    // 計算式:(利用端末で表示可能なcacheサイズ - HTMLのバイト数 ) 
     75                    $temp_imagefilesize = ($cacheSize - strlen($buffer) ); 
     76                } 
    7777                // 計算結果が端末の表示可能ファイルサイズ上限より小さい場合は計算結果の値を有効にする 
    7878                if ($temp_imagefilesize < $imageFileSize) { 
  • branches/version-2_4/data/include/image_converter.inc

    r18009 r18145  
    44 */ 
    55class ImageConverter { 
    6     var $outputImageDir;        // 変換後の画像の保存先 
    7     var $outputImageType;       // 変換後の画像の形式 
    8     var $outputImageWidth;      // 変換後の画像の横幅 
    9     var $outputImageHeight;     // 変換後の画像の高さ 
    10     var $outputImageFileSize;   // 変換後の画像のファイルサイズ 
     6    var $outputImageDir;         // 変換後の画像の保存先 
     7    var $outputImageType;        // 変換後の画像の形式 
     8    var $outputImageWidth;       // 変換後の画像の横幅 
     9    var $outputImageHeight;      // 変換後の画像の高さ 
     10    var $outputImageFileSize;    // 変換後の画像のファイルサイズ 
    1111 
    12     // コンストラクタ 
    13     function ImageConverter() { 
    14         $this->outputImageDir    = realpath(realpath(dirname(__FILE__))); 
    15         $this->outputImageType   = 'jpeg'; 
    16         $this->outputImageWidth  = 320; 
    17         $this->outputImageHeight = NULL; 
    18         $this->outputFileSize    = 20000; 
    19     } 
     12    // コンストラクタ 
     13    function ImageConverter() { 
     14        $this->outputImageDir    = realpath(realpath(dirname(__FILE__))); 
     15        $this->outputImageType   = 'jpeg'; 
     16        $this->outputImageWidth  = 320; 
     17        $this->outputImageHeight = NULL; 
     18        $this->outputFileSize    = 20000; 
     19    } 
    2020 
    21     // 変換実行 
    22     function execute($inputImagePath) { 
    23         // 前処理 
    24         $filestat         = @stat($inputImagePath); 
    25         $imagesize        = getimagesize($inputImagePath); 
    26         $inputImageWidth  = $imagesize[0]; 
    27         $inputImageHeight = $imagesize[1]; 
    28         $inputImageType   = $imagesize[2]; 
    29         $outputImageName  = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $this->outputImageType; 
    30         $outputImagePath  = $this->outputImageDir . '/' . $outputImageName; 
     21    // 変換実行 
     22    function execute($inputImagePath) { 
     23        // 前処理 
     24        $filestat         = @stat($inputImagePath); 
     25        $imagesize        = getimagesize($inputImagePath); 
     26        $inputImageWidth  = $imagesize[0]; 
     27        $inputImageHeight = $imagesize[1]; 
     28        $inputImageType   = $imagesize[2]; 
     29        $outputImageName  = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $this->outputImageType; 
     30        $outputImagePath  = $this->outputImageDir . '/' . $outputImageName; 
    3131 
    32         if (is_null($this->outputImageHeight)) { 
    33           $height_was_null = TRUE; 
    34           $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 
    35         } else { 
    36           $height_was_null = FALSE; 
    37         } 
    38         if ($inputImageWidth <= $this->outputImageWidth) { 
    39           if ($inputImageHeight <= $this->outputImageHeight) { 
    40             $this->outputImageWidth  = $inputImageWidth; 
    41             $this->outputImageHeight = $inputImageHeight; 
    42           } else { 
    43             $this->outputImageWidth = $inputImageWidth * ($this->outputImageHeight / $inputImageHeight); 
    44           } 
    45         } else { 
    46           if ($inputImageHeight <= $this->outputImageHeight) { 
    47             $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 
    48           } else { 
    49             if ($this->outputImageWidth / $inputImageWidth < $this->outputImageHeight / $inputImageHeight) { 
    50               $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 
    51             } else { 
    52               $this->outputImageWidth = $inputImageWidth * ($this->outputImageHeight / $inputImageHeight); 
    53             } 
    54           } 
    55         } 
     32        if (is_null($this->outputImageHeight)) { 
     33          $height_was_null = TRUE; 
     34          $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 
     35        } else { 
     36          $height_was_null = FALSE; 
     37        } 
     38        if ($inputImageWidth <= $this->outputImageWidth) { 
     39          if ($inputImageHeight <= $this->outputImageHeight) { 
     40            $this->outputImageWidth  = $inputImageWidth; 
     41            $this->outputImageHeight = $inputImageHeight; 
     42          } else { 
     43            $this->outputImageWidth = $inputImageWidth * ($this->outputImageHeight / $inputImageHeight); 
     44          } 
     45        } else { 
     46          if ($inputImageHeight <= $this->outputImageHeight) { 
     47            $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 
     48          } else { 
     49            if ($this->outputImageWidth / $inputImageWidth < $this->outputImageHeight / $inputImageHeight) { 
     50              $this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth); 
     51            } else { 
     52              $this->outputImageWidth = $inputImageWidth * ($this->outputImageHeight / $inputImageHeight); 
     53            } 
     54          } 
     55        } 
    5656 
    57         // ファイルが存在するか確認し、存在しない場合のみ作成する 
    58         if (file_exists($outputImagePath)) { 
    59             $info['convert'] = FALSE; 
    60         } else { 
    61             // 元ファイル作成 
    62             switch($inputImageType) { 
    63             case 1: 
    64                 // gif 
    65                 $tempImage = imagecreatefromgif($inputImagePath); 
    66                 break; 
    67             case 2: 
    68                 // jpeg 
    69                 $tempImage = imagecreatefromjpeg($inputImagePath); 
    70                 break; 
    71             case 3: 
    72                 // png 
    73                 $tempImage = imagecreatefrompng($inputImagePath); 
    74                 break; 
    75             case 6: 
    76                 // bmp 
    77                 $tempImage = imagecreatefromwbmp($inputImagePath); 
    78                 break; 
    79             } 
     57        // ファイルが存在するか確認し、存在しない場合のみ作成する 
     58        if (file_exists($outputImagePath)) { 
     59            $info['convert'] = FALSE; 
     60        } else { 
     61            // 元ファイル作成 
     62            switch($inputImageType) { 
     63            case 1: 
     64                // gif 
     65                $tempImage = imagecreatefromgif($inputImagePath); 
     66                break; 
     67            case 2: 
     68                // jpeg 
     69                $tempImage = imagecreatefromjpeg($inputImagePath); 
     70                break; 
     71            case 3: 
     72                // png 
     73                $tempImage = imagecreatefrompng($inputImagePath); 
     74                break; 
     75            case 6: 
     76                // bmp 
     77                $tempImage = imagecreatefromwbmp($inputImagePath); 
     78                break; 
     79            } 
    8080 
    81             if (!$tempImage) { 
    82                 return false; 
    83             } 
     81            if (!$tempImage) { 
     82                return false; 
     83            } 
    8484 
    85             $scale = 1.0; 
    86             $outputImagePathTemp = $outputImagePath . '.tmp-' . rand(); 
    87             do { 
    88                 // 空ファイル作成 
    89                 $outputImage = ImageCreateTruecolor($this->outputImageWidth * $scale, $this->outputImageHeight * $scale); 
    90                 ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth * $scale, $this->outputImageHeight * $scale, $inputImageWidth, $inputImageHeight); 
     85            $scale = 1.0; 
     86            $outputImagePathTemp = $outputImagePath . '.tmp-' . rand(); 
     87            do { 
     88                // 空ファイル作成 
     89                $outputImage = ImageCreateTruecolor($this->outputImageWidth * $scale, $this->outputImageHeight * $scale); 
     90                ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth * $scale, $this->outputImageHeight * $scale, $inputImageWidth, $inputImageHeight); 
    9191 
    92                 // ファイル出力 
     92                // ファイル出力 
    9393 
    94                 @unlink($outputImagePathTemp); 
     94                @unlink($outputImagePathTemp); 
    9595 
    96                 switch ($this->outputImageType) { 
    97                 case 1: 
    98                 case 'gif': 
    99                     imagegif($outputImage, $outputImagePathTemp); 
    100                     break; 
    101                 default: 
    102                 case 2: 
    103                 case 'jpg': 
    104                 case 'jpeg': 
    105                     $quality = 75; 
    106                     // 表示可能なファイルサイズ以下になるまで、10%ずつクオリティを調整する 
    107                     do { 
    108                         @unlink($outputImagePathTemp); 
    109                         imagejpeg($outputImage, $outputImagePathTemp, $quality); 
    110                         $quality -= 10; 
    111                         clearstatcache(); 
    112                     } while (filesize($outputImagePathTemp) > $this->outputFileSize && $quality > 0); 
    113                     break; 
    114                 case 3: 
    115                 case 'png': 
    116                     imagepng($outputImage, $outputImagePathTemp); 
    117                     break; 
    118                 case 6: 
    119                 case 'bmp': 
    120                     imagewbmp($outputImage, $outputImagePathTemp); 
    121                     break; 
    122                 } 
     96                switch ($this->outputImageType) { 
     97                case 1: 
     98                case 'gif': 
     99                    imagegif($outputImage, $outputImagePathTemp); 
     100                    break; 
     101                default: 
     102                case 2: 
     103                case 'jpg': 
     104                case 'jpeg': 
     105                    $quality = 75; 
     106                    // 表示可能なファイルサイズ以下になるまで、10%ずつクオリティを調整する 
     107                    do { 
     108                        @unlink($outputImagePathTemp); 
     109                        imagejpeg($outputImage, $outputImagePathTemp, $quality); 
     110                        $quality -= 10; 
     111                        clearstatcache(); 
     112                    } while (filesize($outputImagePathTemp) > $this->outputFileSize && $quality > 0); 
     113                    break; 
     114                case 3: 
     115                case 'png': 
     116                    imagepng($outputImage, $outputImagePathTemp); 
     117                    break; 
     118                case 6: 
     119                case 'bmp': 
     120                    imagewbmp($outputImage, $outputImagePathTemp); 
     121                    break; 
     122                } 
    123123 
    124                 // メモリ開放 
    125                 imagedestroy($outputImage); 
     124                // メモリ開放 
     125                imagedestroy($outputImage); 
    126126 
    127                 $scale -= 0.1; 
    128                 clearstatcache(); 
    129             } while (filesize($outputImagePathTemp) > $this->outputFileSize && $scale >= 0.5); 
     127                $scale -= 0.1; 
     128                clearstatcache(); 
     129            } while (filesize($outputImagePathTemp) > $this->outputFileSize && $scale >= 0.5); 
    130130 
    131             rename($outputImagePathTemp, $outputImagePath); 
     131            rename($outputImagePathTemp, $outputImagePath); 
    132132 
    133             // メモリ開放 
    134             imagedestroy($tempImage); 
     133            // メモリ開放 
     134            imagedestroy($tempImage); 
    135135 
    136             $info['convert'] = TRUE; 
    137         } 
     136            $info['convert'] = TRUE; 
     137        } 
    138138 
    139         if ($height_was_null) { 
    140             $this->outputImageHeigh = NULL; 
    141         } 
     139        if ($height_was_null) { 
     140            $this->outputImageHeigh = NULL; 
     141        } 
    142142 
    143         $info['outputImagePath']  = $outputImagePath; 
    144         $info['outputImageName']  = $outputImageName; 
    145         return $info; 
     143        $info['outputImagePath']  = $outputImagePath; 
     144        $info['outputImageName']  = $outputImageName; 
     145        return $info; 
    146146 
    147     } 
     147    } 
    148148 
    149     // Setter 
    150     function setOutputDir($outputDir)   { $this->outputImageDir   = $outputDir;  } 
    151     function setImageType($imageType)   { $this->outputImageType  = $imageType;  } 
    152     function setImageWidth($imageWidth) { $this->outputImageWidth = $imageWidth; } 
    153     function setImageHeight($imageHeight) { $this->outputImageHeight = $imageHeight; } 
    154     function setFileSize($fileSize)     { $this->outputFileSize   = $fileSize;   } 
     149    // Setter 
     150    function setOutputDir($outputDir)   { $this->outputImageDir   = $outputDir;  } 
     151    function setImageType($imageType)   { $this->outputImageType  = $imageType;  } 
     152    function setImageWidth($imageWidth) { $this->outputImageWidth = $imageWidth; } 
     153    function setImageHeight($imageHeight) { $this->outputImageHeight = $imageHeight; } 
     154    function setFileSize($fileSize)     { $this->outputFileSize   = $fileSize;   } 
    155155 
    156     // Getter 
    157     function getOutputDir()   { return $this->outputDir;         } 
    158     function getImageType()   { return $this->outputImageType;   } 
    159     function getImageWidth()  { return $this->outputImageWidth;  } 
    160     function getImageHeight() { return $this->outputImageHeight; } 
     156    // Getter 
     157    function getOutputDir()   { return $this->outputDir;         } 
     158    function getImageType()   { return $this->outputImageType;   } 
     159    function getImageWidth()  { return $this->outputImageWidth;  } 
     160    function getImageHeight() { return $this->outputImageHeight; } 
    161161 
    162     /* 
    163     * PrivateMethod 
    164     */ 
    165     function beforeExecute() { 
    166     } 
     162    /* 
     163    * PrivateMethod 
     164    */ 
     165    function beforeExecute() { 
     166    } 
    167167} 
    168168?> 
Note: See TracChangeset for help on using the changeset viewer.