如何在CodeIgniter中使用php翻转图像

如何在CodeIgniter中使用php翻转图像,php,codeigniter,Php,Codeigniter,我试图在CodeIgniter中执行翻转操作 我发现了一个使用codeigniter库在php中进行图像翻转的代码 首先,我将图像上传到一个路径,以下是控制器的编码: $config['upload_path'] = 'D:/xampp/htdocs/ImageTools/assets/images/pages/'; $config['allowed_types'] = 'gif|jpg|png|jpeg'; $this->load->library('image_lib'); $t

我试图在CodeIgniter中执行翻转操作 我发现了一个使用codeigniter库在php中进行图像翻转的代码 首先,我将图像上传到一个路径,以下是控制器的编码:

$config['upload_path'] = 'D:/xampp/htdocs/ImageTools/assets/images/pages/';
$config['allowed_types'] = 'gif|jpg|png|jpeg';
$this->load->library('image_lib');
$this->image_lib->initialize($config);
$this->image_lib->clear();
$this->load->library('upload',$config);
if(!$this->upload->do_upload()){
$errors = array('error' => $this->upload->display_errors());
$post_image='noimage.jpg';
}else{
$file_data = $this->upload->data();
$data['img'] = base_url().'assets/images/pages/'.$file_data['file_name'];
$this->load->view('pages/inverted',$data);
我尝试在此处执行反转操作,但未能成功,然后尝试反转上载的图像,通过将上载的图像传递到视图,在视图文件中完成编码:

<?php $img;?>
<?php
$this->image_lib->clear();
$config=array();
$config['image_library'] = 'gd2';
$config['source_image'] = $img;
$config['create_thumb'] = TRUE;
$config['rotation_angle'] = 'hor';
$this->load->library('image_lib');
$this->image_lib->initialize($config);
$this->load->library('upload',$config);
$this->image_lib->rotate();                    
if ( ! $this->image_lib->rotate())
{
echo $this->image_lib->display_errors();
}
if(!$this->upload->do_upload()){
$errors = array('error' => $this->upload->display_errors());
$post_image='noimage.jpg';
}
else{
$file_data = $this->upload->data();
$data = base_url().'/assets/images/pages/'.$file_data['file_name'];
}              
?>

首先
D:/xampp/htdocs/ImageTools/assets/images/pages/
在服务器环境中永远无效。有一种方法可以使其适用于所有环境,例如:

$config['upload_path']='./ImageTools/assets/images/pages/

(还有其他方法,但这是CI文档中的方法)

如果文件夹
ImageTools
实际上是
ImageTools
,则需要在上述示例中使用该文件夹;Linux区分大小写

因此,遵循这些文档,您可以执行以下操作:

$upload['upload_path'] = './ImageTools/assets/images/pages/';
$upload['allowed_types'] = 'gif|jpg|png';

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

if (!$this->upload->do_upload('userfile')) {
    show_error($this->upload->display_errors());
}

$this->load->library('image_lib');

$config['image_library'] = 'gd2';
$config['source_image'] = $this->upload->data('full_path');
$config['rotation_angle'] = 'hor'; // or whatever

$this->image_lib->initialize($config);

if (!$this->image_lib->rotate()) {
    show_error($this->image_lib->display_errors());
}

$img_path = base_url() . '/assets/images/pages/' . $this->upload->data('file_name');

echo "<img src='{$img_path}' width='auto' height='200'>";
$upload['upload_path']='./ImageTools/assets/images/pages/;
$upload['allowed_types']='gif | jpg | png';
$this->load->library('upload',$upload);
如果(!$this->upload->do_upload('userfile')){
显示错误($this->upload->display_errors());
}
$this->load->lib('image_lib');
$config['image_library']='gd2';
$config['source_image']=$this->upload->data('full_path');
$config['rotation_angle']='hor';//或者别的什么
$this->image\u lib->initialize($config);
如果(!$this->image\u lib->rotate()){
显示错误($this->image\u lib->display\u errors());
}
$img\u path=base\u url()/资源/图像/页面/'$这个->上传->数据('file_name');
回声“;

我真的不知道如何更好地解释错误消息,但我知道。当您以字符串形式传递URL时,第一个参数必须是图像资源。您有什么解决方案吗?将图像资源作为第一个参数而不是字符串传递。如果您阅读该功能的手册,甚至可以看到一个示例。首先,在服务器环境中,
D:/xampp/htdocs/ImageTools/assets/images/pages/
将永远无效。有一种方法可以使它对所有环境有效
/ImageTools/assets/images/pages/
,实际上您需要传递一个资源。问题是你需要知道你有哪种类型的图像。。。png、jpg等。如果您只使用CI附带的图像库,这会容易得多。我已经尝试过了,但这也造成了问题。您能帮我完成另一项任务吗?也许吧。开始另一个问题,因为你相对来说是新手,所以请确保遵循stacks指导原则,因为向下投票和结束是常见的。已开始,链接: