2017-08-31 18 views
3

我加入了代码像下面的图像的中心添加水印:如何在使用codeigniter上传时在图像的不同位置添加水印?

if (!is_dir('assets/uploads_image/')) { 
    mkdir('assets/uploads_image/', 0777, true); 
} 
if (!is_dir('assets/uploads_watermark_image/')) { 
    mkdir('assets/uploads_watermark_image/', 0777, true); 
} 
$config1['upload_path'] = 'assets/uploads_image/'; 
$config1['allowed_types'] = 'jpeg|png|jpg|svg'; 
$this->load->library('upload', $config1); 
$this->upload->initialize($config1); 
if (! $this->upload->do_upload('image')) { 
    $error = array('error' => $this->upload->display_errors()); 
    $this->session->set_flashdata('error', $error['error']); 
    redirect('photographer/uploadimage'); 
} 
$config['upload_path'] = 'assets/uploads_watermark_image/'; 
$config['allowed_types'] = 'jpeg|png|jpg|svg'; 
$this->load->library('upload', $config); 
$this->upload->initialize($config); 
$config['image_library'] = 'GD2'; 
$_FILES['file']['name'] = $_FILES['image']['name']; 
$_FILES['file']['type'] = $_FILES['image']['type']; 
$_FILES['file']['tmp_name'] = $_FILES['image']['tmp_name']; 
$_FILES['file']['error'] = $_FILES['image']['error']; 
$_FILES['file']['size'] = $_FILES['image']['size']; 
$config['source_image'] = $_FILES['image']['tmp_name']; 
$config['wm_type'] = 'overlay'; 
$config['wm_overlay_path'] = 'assets/img/overlay_watermark.png'; 
$config['wm_vrt_alignment'] = 'middle'; 
$config['wm_hor_alignment'] = 'center'; 
$config['wm_opacity'] = '100'; 
$this->load->library('image_lib', $config); 
$this->image_lib->initialize($config); 
$this->image_lib->watermark(); 

现在我要修改这个代码,并需要添加水印的图像分成各个角落和图像的中心。请帮我解决这个问题。

提前感谢您的时间。

回答

1

看起来你正在使用笨2:https://codeigniter.com/userguide2/libraries/image_lib.html

所以看上去你需要添加水印每一次一个。

这里稍作修改,首先定义所有你想要的水印,然后将一个循环水印添加到每个位置(根据您要在每个位置相同的水印的想法)的位置您的代码示例。

// YOUR SETUP CODE 

if (!is_dir('assets/uploads_image/')) { 
    mkdir('assets/uploads_image/', 0777, true); 
} 
if (!is_dir('assets/uploads_watermark_image/')) { 
    mkdir('assets/uploads_watermark_image/', 0777, true); 
} 
$config1['upload_path'] = 'assets/uploads_image/'; 
$config1['allowed_types'] = 'jpeg|png|jpg|svg'; 
$this->load->library('upload', $config1); 
$this->upload->initialize($config1); 
if (! $this->upload->do_upload('image')) { 
    $error = array('error' => $this->upload->display_errors()); 
    $this->session->set_flashdata('error', $error['error']); 
    redirect('photographer/uploadimage'); 
} 
$config['upload_path'] = 'assets/uploads_watermark_image/'; 
$config['allowed_types'] = 'jpeg|png|jpg|svg'; 
$this->load->library('upload', $config); 
$this->upload->initialize($config); 

// YOUR WATERMARK SETUP CODE 

$config['image_library'] = 'GD2'; 
$_FILES['file']['name'] = $_FILES['image']['name']; 
$_FILES['file']['type'] = $_FILES['image']['type']; 
$_FILES['file']['tmp_name'] = $_FILES['image']['tmp_name']; 
$_FILES['file']['error'] = $_FILES['image']['error']; 
$_FILES['file']['size'] = $_FILES['image']['size']; 
$config['source_image'] = $_FILES['image']['tmp_name']; 
$config['wm_type'] = 'overlay'; 
$config['wm_overlay_path'] = 'assets/img/overlay_watermark.png'; 
$config['wm_opacity'] = '100'; 
$this->load->library('image_lib', $config); 


// DEFINE YOUR WATERMARK LOCATIONS 

$watermark_array = array(
    array('horizontal' => 'center', 'vertical' => 'middle'), 
    array('horizontal' => 'left', 'vertical' => 'top'), 
    array('horizontal' => 'right', 'vertical' => 'top'), 
    array('horizontal' => 'left', 'vertical' => 'bottom'), 
    array('horizontal' => 'right', 'vertical' => 'bottom') 
); 


// ADD YOUR WATERMARKS 

foreach ($watermark_array as $row) { 
    $config['wm_vrt_alignment'] = $row['vertical']; 
    $config['wm_hor_alignment'] = $row['horizontal']; 

    $this->image_lib->initialize($config); 
    $this->image_lib->watermark(); 
} 
相关问题