обернуть phpThumb в метод контроллера CodeIgniter - PullRequest
0 голосов
/ 01 марта 2012

On Codeigniter , я использую phpThumb для генерации изображений.Я не использовал встроенную библиотеку изображений CI, потому что она не могла использовать функцию «увеличения масштаба» в phpThumb, которая мне очень нужна (возможность создавать миниатюры одного размера независимо от их исходного размера / пропорций,масштабирование и обрезка при необходимости).

Все работает отлично, кроме моих изображений src выглядит так ужасно:

<img src="lib/phpThumb.php?src=../../upload/photo/file.jpg&w=100&h=100&zc=1" />

Я надеялся, что это будет выглядетьчто-то вроде этого:

<img src="photo/display/file.jpg" />

, обернув phpThumb в контроллере CI photo методом display($filename) {}

Я смог сделать это с помощьювстроенная библиотека изображений CI, но я не знаю, как использовать phpThumb вместо этого.

Есть предложения?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

Если вы используете веб-сервер apache, apache попытается отобразить изображение, если запрашивается URL с расширением .jpg.Таким образом, вы можете сделать это двумя способами:

1) Измените ваш файл .htaccess, чтобы он сообщал apache о необходимости направлять все запросы к определенному имени изображения в папке на контроллер / метод в приложении CI, которое выполняет рендеринг phpThumb..

или, что еще лучше

2) Попросите phpThumb сохранить изображения в определенном месте на вашем сервере, а не обрабатывать их динамически.Затем вы можете просто получить доступ к имени файла, к которому сохраняет phpThumb.

0 голосов
/ 20 марта 2012

Я нашел другую библиотеку миниатюр PHP (также называемую PHPThumb) и использовал ее: https://github.com/masterexploder/PHPThumb/wiki

Вот мой класс CodeIgniter:

class Photo extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    function display($filename) {
        require_once('./lib/PHPThumb/ThumbLib.inc.php');
        $thumb = PhpThumbFactory::create('./upload/photo/' . $filename);
        $thumb->adaptiveResize(100, 100);
        $thumb->show();
    }

}

Теперь мой img выглядит лучше:

<img src="photo/display/file.jpg" />

...