php – 如何使用codeigniter上传时在图像的不同位置添加水印?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何使用codeigniter上传时在图像的不同位置添加水印?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3722字,纯文字阅读大概需要6分钟。
内容图文
![php – 如何使用codeigniter上传时在图像的不同位置添加水印?](/upload/InfoBanner/zyjiaocheng/782/6fd164f490fc47d4a54c865ebafda78a.jpg)
我添加了如下代码,在图像中心添加水印:
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();
现在我想修改此代码,并需要将水印图像添??加到图像的所有角落和中心.请帮我解决这个问题.
在此先感谢您的时间.
解决方法:
看起来您正在使用CodeIgniter 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();
}
内容总结
以上是互联网集市为您收集整理的php – 如何使用codeigniter上传时在图像的不同位置添加水印?全部内容,希望文章能够帮你解决php – 如何使用codeigniter上传时在图像的不同位置添加水印?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。