在CodeIgniter控制器方法中包装phpThumb

时间:2012-03-01 11:21:49

标签: php codeigniter phpthumb

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 个答案:

答案 0 :(得分:1)

如果您使用的是apache Web服务器,那么如果请求带有.jpg扩展名的网址,则apache会尝试提供图片。所以你可以这两种方式:

1)更改.htaccess文件,告诉apache将文件夹中特定图像名称的所有请求路由到执行phpThumb渲染的CI应用程序中的控制器/方法。

或者,更好的是

2)让phpThumb将图像保存到服务器上的某个位置,而不是动态呈现它们。然后你可以访问phpThumb保存到的文件名。

答案 1 :(得分:0)

我发现了一个不同的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" />