2012-03-01 35 views
0

Codeigniter,我使用phpThumb来生成图像。我没有使用内置的CI图像库,因为它无法执行phpThumb的“缩放裁剪”功能,我非常需要它(无论原始大小/比例如何,都可以创建相同大小的缩略图)在必要时放大和裁剪)。在CodeIgniter控制器方法中包装phpThumb

一切工作,除了我的图片精src看起来这么难看:

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

我希望,使它看起来像这样代替:通过包装phpThumb

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

在CI控制器photo中用方法display($filename) {}

我能够使用内置的CI图像库来做到这一点,但我不知道如何使用phpThumb。

有什么建议吗?

回答

0

我发现了一个不同的PHP缩略库(也称为PHPThumb),并用它:https://github.com/masterexploder/PHPThumb/wiki

这是我笨类:

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" />

1

如果您使用的是Apache Web服务器,那么如果请求带有.jpg扩展名的URL,apache将尝试提供一个映像。所以你可以这样做2种方式:

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

,或者更好的

2)具有phpThumb将图像保存到一个位置,您的服务器上,而不是动态渲染他们。然后你可以访问phpThumb保存的文件名。