我正在使用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();
}
上传路径和文件名不包括在内,因为我不确定如何添加它们。有没有办法添加它们?
答案 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';
有关此偏好的说明:
- 如果仅指定了新图像名称,则它将与原始图像名称放在同一文件夹中
- 如果仅指定了路径,则新图像将放置在与原始图像同名的目标中。
- 如果同时指定了路径和图像名称,它将放置在自己的目标位置并给出新名称。