在 codeigniter 上加水印和上传图片
watermark and upload image on codeigniter
我正在尝试在 codeigniter 上为我的图片添加水印
我可以给图片加水印,我必须给它路径,效果很好,但我想给我要上传的图片加水印,这意味着我选择文件并给它们加水印,然后上传到数据库,所以我该怎么做这是我的图片上传控制器
控制器
function add_page() {
$this->access_denied();
//new page add from form process
if($this->input->post('add')) {
$this->form_validation->set_rules('slug', 'slug', 'trim|required|min_length[4]|max_length[200]');
$this->form_validation->set_rules('title', 'title', 'trim|required');
$this->form_validation->set_rules('details', 'details', 'trim|required');
if ($this->form_validation->run()) {
$slug = strip_tags(url_title($this->input->post('slug')));
$title = $this->input->post('title');
$details = $this->input->post('details');
$publish_date = time();
$added_by = $this->session->userdata('full_name');
// if image is uploaded
if (isset($_FILES['userfile']['name']) && $_FILES['userfile']['size']>0) {
$config = array('upload_path' => './uploads/page/',
'allowed_types' => 'jpg|gif|png|jpeg|ico',
'max_size' => 0,
'max_height' => 0,
'max_width' =>0
);
$this->load->library('upload', $config);
if ($this->upload->do_upload()) {
$image_files = $this->upload->data();z
$this->page_model->add_page($slug, $title, $details, $image_files['file_name'], $publish_date, $added_by);
$this->session->set_flashdata('error_msg', '<div class="alert alert-success" role="alert") New page has been added successfully.</div>');
redirect('page/manage-page');
}
else {
$this->session->set_flashdata('error_msg', $this->upload->display_errors());
redirect('page/add_page');
}
}
else {
$this->page_model->add_page($slug, $title, $details, null,$publish_date,$added_by);
$this->session->set_flashdata('error_msg', '<div class="alert alert-success" role="alert") New page has been added successfully.</div>');
redirect('page/manage-page');
}
}
}
$data = array('page_title' => "Add new page",
'keywords' =>"",
'description' => "",
'image' => "",
'url'=> "",
'author' => "",
'page_content' => $this->load->view('page/add', '', true)
);
$this->load->view('dashboard', $data);
}
我希望它不会吓到你们,但对我来说会有很大帮助谢谢。
您可以使用 PHP 中的库 WideImage。它具有用于添加水印的预定义功能。 link
您可以使用 codeigniter 添加水印link
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['wm_text'] = 'Copyright 2006 - John Doe';
$config['wm_type'] = 'text';
$config['wm_font_path'] = './system/fonts/texb.ttf';
$config['wm_font_size'] = '16';
$config['wm_font_color'] = 'ffffff';
$config['wm_vrt_alignment'] = 'bottom';
$config['wm_hor_alignment'] = 'center';
$config['wm_padding'] = '20';
$this->image_lib->initialize($config);
$this->image_lib->watermark();
这是很好的代码,可以帮助您进行图片上传和加水印
图片上传和加水印
我正在尝试在 codeigniter 上为我的图片添加水印 我可以给图片加水印,我必须给它路径,效果很好,但我想给我要上传的图片加水印,这意味着我选择文件并给它们加水印,然后上传到数据库,所以我该怎么做这是我的图片上传控制器
控制器
function add_page() {
$this->access_denied();
//new page add from form process
if($this->input->post('add')) {
$this->form_validation->set_rules('slug', 'slug', 'trim|required|min_length[4]|max_length[200]');
$this->form_validation->set_rules('title', 'title', 'trim|required');
$this->form_validation->set_rules('details', 'details', 'trim|required');
if ($this->form_validation->run()) {
$slug = strip_tags(url_title($this->input->post('slug')));
$title = $this->input->post('title');
$details = $this->input->post('details');
$publish_date = time();
$added_by = $this->session->userdata('full_name');
// if image is uploaded
if (isset($_FILES['userfile']['name']) && $_FILES['userfile']['size']>0) {
$config = array('upload_path' => './uploads/page/',
'allowed_types' => 'jpg|gif|png|jpeg|ico',
'max_size' => 0,
'max_height' => 0,
'max_width' =>0
);
$this->load->library('upload', $config);
if ($this->upload->do_upload()) {
$image_files = $this->upload->data();z
$this->page_model->add_page($slug, $title, $details, $image_files['file_name'], $publish_date, $added_by);
$this->session->set_flashdata('error_msg', '<div class="alert alert-success" role="alert") New page has been added successfully.</div>');
redirect('page/manage-page');
}
else {
$this->session->set_flashdata('error_msg', $this->upload->display_errors());
redirect('page/add_page');
}
}
else {
$this->page_model->add_page($slug, $title, $details, null,$publish_date,$added_by);
$this->session->set_flashdata('error_msg', '<div class="alert alert-success" role="alert") New page has been added successfully.</div>');
redirect('page/manage-page');
}
}
}
$data = array('page_title' => "Add new page",
'keywords' =>"",
'description' => "",
'image' => "",
'url'=> "",
'author' => "",
'page_content' => $this->load->view('page/add', '', true)
);
$this->load->view('dashboard', $data);
}
我希望它不会吓到你们,但对我来说会有很大帮助谢谢。
您可以使用 PHP 中的库 WideImage。它具有用于添加水印的预定义功能。 link
您可以使用 codeigniter 添加水印link
$config['source_image'] = '/path/to/image/mypic.jpg';
$config['wm_text'] = 'Copyright 2006 - John Doe';
$config['wm_type'] = 'text';
$config['wm_font_path'] = './system/fonts/texb.ttf';
$config['wm_font_size'] = '16';
$config['wm_font_color'] = 'ffffff';
$config['wm_vrt_alignment'] = 'bottom';
$config['wm_hor_alignment'] = 'center';
$config['wm_padding'] = '20';
$this->image_lib->initialize($config);
$this->image_lib->watermark();
这是很好的代码,可以帮助您进行图片上传和加水印
图片上传和加水印