调整源的图像大小并使用Codeigniter设置上载路径

时间:2012-01-16 16:24:43

标签: php codeigniter image-manipulation codeigniter-2

我正在使用Codeigniter构建一个图像库到目前为止一切都很顺利,但我对图像大小调整有一个快速的问题。

基本上我上传源图像,然后创建一个id,然后将其存储在/uploads/$id/source.jpg路径中。然后我尝试创建源图像的两个新图像,缩略图和带有水印的中间图像。

使用Codeigniter的Image Manipulation Class时,您可以设置文件名和上传路径吗?当你给它源图像时它会修改源图像还是复制它?

public function generateThumnail($source, $screenid) {
        $config['image_library'] = 'gd2';
        $config['source_image'] = "$source";
        $config['maintain_ratio'] = TRUE;
        $config['width'] = 75;
        $config['height'] = 50;

        //Not sure how I set the upload path and file name.
        $this->load->library('image_lib', $config); 
        $this->image_lib->resize();

        //TODO: Code to be added later
        $this->image_lib->clear();
}

上传路径和文件名不包括在内,因为我不确定如何添加它们。有没有办法添加它们?

1 个答案:

答案 0 :(得分:2)

是的,您可以指定上传路径,但使用文件上传类,而不是图像操作类。

$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';

$this->load->library('upload', $config);

http://codeigniter.com/user_guide/libraries/file_uploading.html

如果你告诉它,CodeIgniter会创建一个图像副本。

  

制作副本

     

调整大小功能将创建图像文件的副本(和   如果使用设置路径和/或新文件名,则保留原始文件   这个偏好:

$config['new_image'] = '/path/to/new_image.jpg';
  

有关此偏好的说明:

     
      
  • 如果仅指定了新图像名称,则它将与原始图像名称放在同一文件夹中   
  • 如果仅指定了路径,则新图像将放置在与原始图像同名的目标中。
  •   
  • 如果同时指定了路径和图像名称,它将放置在自己的目标位置并给出新名称。
  •   

http://codeigniter.com/user_guide/libraries/image_lib.html