温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

利用PHP怎么根据图片色界在不同位置添加水印

发布时间:2021-02-19 16:41:27 阅读:154 作者:Leah 栏目:开发技术
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章给大家介绍利用PHP怎么根据图片色界在不同位置添加水印,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

具体实现方法如下:

function add_wm($nmw_water$src_file$output_file$x$y{    
    if(file_exists($output_file))    
      return;    
    $w1 MagickGetImageWidth($nmw_water);    
    $h2 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 $h2 $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(5050)    
  );    
  $water './water.png';    
  $nmw_water =NewMagickWand();    
  MagickReadImage($nmw_water$water);    
  add_wm_recurse($nmw_water$to_dir$output_dir$arr);    
  DestroyMagickWand($nmw_water);

关于利用PHP怎么根据图片色界在不同位置添加水印就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI

开发者交流群×