ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 6891


Ignore:
Timestamp:
May 1, 2008, 3:25:50 AM (11 years ago)
Author:
ebihara
Message:

allowed_sizeプロパティを追加

File:
1 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/work/ebihara/prj_renew_OpenPNE_Img/webapp/lib/OpenPNE/Img.php

    r6890 r6891  
    2121    var $requests;
    2222
     23    var $allowed_size;
     24
    2325    var $generator;
    2426    var $storage;
     
    3335    function OpenPNE_Img($options = array())
    3436    {
     37        $this->allowed_size = (array)$GLOBALS['_OPENPNE_IMG_ALLOWED_SIZE'];
     38        if (!empty($options['allowed_size'])) {
     39            $this->allowed_size = $options['allowed_size'];
     40        }
     41
    3542        $this->generator = new OpenPNE_Img_Generator($options);
    3643        $this->storage = new OpenPNE_Img_Storage($options);
     
    8390    function generate_img()
    8491    {
    85         if (!$this->requests['filename']) {
     92        $filename = $this->requests['filename'];
     93        $w = $this->requests['w'];
     94        $h = $this->requests['h'];
     95        $format = $this->requests['f'];
     96
     97        if (!$filename) {
    8698            return false;
    8799        }
    88100
    89         // 解像度のチェック
    90         $w = $this->requests['w'];
    91         $h = $this->requests['h'];
    92         if ($w || $h) {
    93             $size = sprintf('%dx%d', $w, $h);
    94             $allowed_size = (array)$GLOBALS['_OPENPNE_IMG_ALLOWED_SIZE'];
    95             if ($allowed_size && !in_array($size, $allowed_size)) {
    96                 return false;
    97             }
     101        if (!$this->isAllowedSize($w, $h)) {
     102            return false;
    98103        }
    99104
    100         $this->generator->setOutputFormat($this->requests['f']);
    101         $this->generator->setCacheFilename($this->requests['filename'], $w, $h);
    102 
     105        $this->generator->setOutputFormat($format);
     106        $this->generator->setCacheFilename($filename, $w, $h);
    103107        if ($this->generator->isCacheReadable()) {
    104108            return true;
    105109        }
    106110
    107         if (!$raw_img = $this->storage->getRawImage($this->requests['filename'])) {
     111        if (!$raw_img = $this->storage->getRawImage($filename)) {
    108112            return false;
    109113        }
    110114
    111         return $this->generator->createImage($raw_img, $w, $h, $this->requests['f']);
     115        return $this->generator->createImage($raw_img, $w, $h, $format);
    112116    }
    113117
     
    154158        }
    155159    }
     160
     161    function isAllowedSize($width = 0, $height = 0)
     162    {
     163        if (!$width && !$height) {
     164            return true;
     165        }
     166
     167        $size = sprintf('%dx%d', $width, $height);
     168        if ($this->allowed_size && !in_array($size, $this->allowed_size)) {
     169            return false;
     170        }
     171
     172        return true;
     173    }
    156174}
    157175
Note: See TracChangeset for help on using the changeset viewer.