PHP根据图片色界在不同位置加水印的方法


Posted in PHP onJuly 01, 2015

本文实例讲述了PHP根据图片色界在不同位置加水印的方法。分享给大家供大家参考。具体实现方法如下:

function add_wm($nmw_water, $src_file, $output_file, $x, $y) {    
    if(file_exists($output_file))    
      return;    
    $w1 = MagickGetImageWidth($nmw_water);    
    $h1 = MagickGetImageHeight($nmw_water);    
    $nmw =NewMagickWand();    
    MagickReadImage($nmw, $src_file);    
    // 默认的加水印位置调整    
    $lt_w = 50;    
    $lt_h = 50;    
    if($x == 0){    
      $w = MagickGetImageWidth($nmw);    
      $h = MagickGetImageHeight($nmw);    
      $x = $w;    
      $y = $h;    
    }else{    
      // 根据具体情况调整    
      $lt_w = 30;    
      $lt_h = 40;    
    }    
    MagickCompositeImage($nmw, $nmw_water, MW_OverCompositeOp, $x - $w1 - $lt_w, $y - $h1 - $lt_h);    
    MagickWriteImage($nmw, $output_file);    
    DestroyMagickWand($nmw);        
  }    
  // 还是groovy的eachFileRecurse好用啊    
  function add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr) {
    $dp = dir($to_dir);    
    while($file=$dp->read()){    
      if($file != '.' && $file != '..'){    
        if(is_dir($to_dir . '/' . $file)){    
          mkdir($output_dir . '/' . $file);    
          add_wm_recurse($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $arr);    
        }else{    
          if(!array_key_exists($to_dir . '/' . $file, $arr)){
            continue;    
          }    
          $sub_arr = $arr[$to_dir . '/' . $file];    
          if($sub_arr){    
            $x = intval($sub_arr[0]);    
            $y = intval($sub_arr[1]);    
            add_wm($nmw_water, $to_dir . '/' . $file, $output_dir . '/' . $file, $x, $y);    
          }    
        }    
      }    
    }    
    $dp->close();    
  }    
  $to_dir = './resized';    
  $output_dir = './output';    
  // 这个是我用java的ImageIO遍历图片像素获取的符合裤子颜色的区域的坐标array(posX, posY)    
  $arr = array(    
    array(50, 50)    
  );    
  $water = './water.png';    
  $nmw_water =NewMagickWand();    
  MagickReadImage($nmw_water, $water);    
  add_wm_recurse($nmw_water, $to_dir, $output_dir, $arr);    
  DestroyMagickWand($nmw_water);

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP文本数据库的搜索方法
Oct 09 PHP
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
php实现的微信红包算法分析(非官方)
Sep 25 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
php简单生成一组与多组随机字符串的方法
May 09 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 PHP
laravel 中某一字段自增、自减的例子
Oct 11 PHP
php检测图片主要颜色的方法
Jul 01 #PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 #PHP
浅谈php提交form表单
Jul 01 #PHP
用PHP代码给图片加水印
Jul 01 #PHP
用PHP代码在网页上生成图片
Jul 01 #PHP
PHP文件操作方法汇总
Jul 01 #PHP
浅谈PHP中JSON数据操作
Jul 01 #PHP
You might like
星际争霸任务指南——神族
2020/03/04 星际争霸
PHP4.04简明安装
2006/10/09 PHP
简单实现php上传文件功能
2017/09/21 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
理解javascript中的闭包
2017/01/11 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
深入理解javascript中的this
2021/02/08 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python实现自动登录
2018/09/17 Python
python机器学习之神经网络实现
2018/10/13 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
行政人员工作职责
2013/12/05 职场文书
参观考察邀请函范文
2014/01/29 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
齐云山导游词
2015/02/06 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
php实现自动生成验证码的实例讲解
2021/11/17 PHP