如何使用Codeigniter / PHP在运行时动态调整图像大小?

时间:2018-08-09 12:38:12

标签: php codeigniter

这是我分享的Foursquare图片网址:-

https://igx.4sqi.net/img/general/width960/59805036_Qt3WZYJ5z3_LPh8tpG4wtqJSrVokkKioxYebWogfOjo.jpg

它显示原始图像。现在,如果我使用以下图像链接,

https://igx.4sqi.net/img/general/200x1600/59805036_Qt3WZYJ5z3_LPh8tpG4wtqJSrVokkKioxYebWogfOjo.jpg

图像将根据尺寸200x1600自动调整大小。给定任何尺寸,图像将自动调整大小,这证明没有预定义尺寸。

在URL中放置以上链接时,图像将自动调整大小。如何在使用Codeigniter或PHP的情况下动态管理此问题?

我对此一无所知。

1 个答案:

答案 0 :(得分:0)

使用CI非常简单。阅读image manipulation class的文档。

您将需要创建一个控制器来处理该问题:

<?php

class Image extends CI_Controller
{

    public function resize($filename, $width, $height){

        // path to image in your project
        $image_path = 'uploads/img/'.$filename;

        // if image doesn't exist show 404 error
        if(!file_exists($image_path))
            show_404();

        // Load image library
        $this->load->library('image_lib');


        // configure image library
        $config = array(
            'image_library' => 'gd2',
            'source_image' => $image_path,
            'dynamic_output' => true,
            'width' => $width,
            'height' => $height,
        );

        // load configuration
        $this->image_lib->initialize($config);

        // resize
        $this->image_lib->resize();

    }

}

现在打开浏览器并尝试:localhost / project_folder / image / resize / example.jpg / 500/500

要使URL看起来像问题中的URL,可以将route添加到route配置文件中。