加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 02:43:09 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:PHP根据图片色界在不同位置加水印的方法》要点: 本文介绍了PHP实例:PHP根据图片色界在不同位置加水印的方法,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解PHP根据图片色界在不同位置加水印的办法.供大家参考研究.具体实现办

《PHP实例:PHP根据图片色界在不同位置加水印的方法》要点:
本文介绍了PHP实例:PHP根据图片色界在不同位置加水印的方法,希望对您有用。如果有疑问,可以联系我们。

本篇章节讲解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,$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,$arr);    
  DestroyMagickWand($nmw_water);

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

欢迎参与《PHP实例:PHP根据图片色界在不同位置加水印的方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读