Yii Framework Forum: phpThumb-Wrapper - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

phpThumb-Wrapper Rate Topic: -----

#1 User is offline   mbi 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 604
  • Joined: 08-May 09

Posted 10 June 2009 - 06:25 AM

  • create a folder protected/extensions/thumbnailer
  • download phpThumb http://phpthumb.sourceforge.net/
  • extract to protected/extensions/thumbnailer/phpThumb
  • create a file Thumbnailer.php in protected/extensions/thumbnailer



<?php
require_once(dirname(__FILE__).DIRECTORY_SEPARATOR.'phpThumb'.DIRECTORY_SEPARATOR.'phpthumb.class.php');

class Thumbnailer
{

    private $_phpThumb;

    public function init() {}

    public function __construct(){
        $this->_phpThumb = new phpThumb();
    }

    public function __call($method, $params){
        if (is_object($this->_phpThumb) && get_class($this->_phpThumb) === 'phpthumb') return call_user_func_array(array($this->_phpThumb, $method), $params);
        else throw new CException(Yii::t('Thumbnailer', 'Can not call a method of a non existent object'));
    }

    public function __set($name, $value) {
        if (is_object($this->_phpThumb) && get_class($this->_phpThumb) === 'phpthumb') $this->_phpThumb->$name = $value;
        else throw new CException(Yii::t('Thumbnailer', 'Can not set a property of a non existent object'));
    }

    public function __get($name){
        if (is_object($this->_phpThumb) && get_class($this->_phpThumb) === 'phpthumb') return $this->_phpThumb->$name;
        else throw new CException(Yii::t('Thumbnailer', 'Can not access a property of a non existent object'));
    }

    public function __sleep() {}
    public function __wakeup() {}
}


edit your config/main.php


<?php
'components' => array(...

    'thumbnailer' => array(
        'class'=>'application.extensions.thumbnailer.Thumbnailer'
    ),
)


create Thumbs

<?php
function thumb120x90($src, $dst, $blured = false) {
    $phpThumb = Yii::app()->thumbnailer;

    $phpThumb->setSourceFilename($src);
    $thumbFile = $dst;

    $phpThumb->setParameter('w', 120);
    $phpThumb->setParameter('h', 90);
    $phpThumb->setParameter('zc', 1);
    if($blured) {
        $phpThumb->setParameter('fltr', 'blur|15');
    }

    if (!$phpThumb->GenerateThumbnail()) {
        new CHttpException(400,'Invalid request. Please do not repeat this request again.');
    }

    if (!$phpThumb->RenderToFile($thumbFile)) {
        new CHttpException(400,'Invalid request. Please do not repeat this request again.');
    }
}

thumb120x90("images/test.jpg", "images/test_thumb.jpg");




0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users