Discuz模板|Discuz插件|Discuz教程|Discuz素材免费下载

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)所有用户可全部免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需购买会员组方可下载),如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

Discuz!让水印平铺的修改方法

[复制链接]
tuyuanma 发表于 2019-5-23 11:55:08 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


修改文件:\source\class\class_image.php
& v! T5 J6 E; t$ F. j" f$ G+ W# V& l. }) U
修改原理:计算水印大小和图片大小,每次偏移一个水印的位置重复打水印;
( `' d. j  x3 y* I7 [, m3 O
" }9 B  Q2 i0 x! F% g' p由于discuz支持png和gif两种水印,因此本方法涉及两处修改:6 n+ g# J$ x. ~' l, @, a2 Y6 C
修改1属于支持png水印,修改2属于支持gif水印;
# w7 K+ k7 }$ x% h, T7 `* L2 v1 q% n* C8 l5 F$ ?2 H
修改1:大概第475行原始代码0 ?$ Y. ?" v. B! ~& o
  1. if($this->param['watermarktype'][$type] == 'png') {
    ( u+ g( Z. f( W0 D2 v
  2.         imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
    / ?2 L9 |: C" O: _- C
  3. }
复制代码
修改为: U; [) u" L, I5 a0 i9 G6 h. b
  1. if($this->param['watermarktype'][$type] == 'png') {6 K0 s6 l8 W+ h; f0 Q
  2.         //修改1 开始7 V  v6 B# E$ x- r" S
  3.         //imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);* g- r5 x$ f) B  j$ _$ k( c0 o
  4.         if(intval($this->imginfo['width']/$logo_w)>=3){
    - y7 ]& ~. R( U6 D$ a! R2 H/ q: P
  5.                 $wblank=($logo_w+$this->imginfo['width']%$logo_w)/intval($this->imginfo['width']/$logo_w);
    * {& ?4 F6 G( h. n6 Y: f( q3 d1 Q
  6.                 $hblank=($logo_h+$this->imginfo['height']%$logo_h)/intval($this->imginfo['height']/$logo_h);1 u) T" W) u8 g" A
  7.                 for($x = $wblank;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+$wblank){
    - s" l% {$ @8 J9 t5 G
  8.                         for($y = $hblank;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+$hblank){
    ! t3 \/ U! D' J) p4 V
  9.                                 imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);
    : |# q5 ^8 \% H/ b; D
  10.                         }3 @  n8 v/ B6 E/ T3 }- l' N
  11.                 }       
    % W4 y$ X7 p1 `# a/ M; @0 r
  12.         }else{
    # E, W' q1 F: v- `; l7 K
  13.                 for($x = 5;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+10){
    ! U' F7 h3 ~5 \8 a' i- t2 }, R" @
  14.                         for($y = 5;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+10){1 d+ f! K/ c# ?* a3 I( z- x
  15.                                 imageCopy($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h);6 P- U0 M# k4 k
  16.                         }
    $ L+ Q! O; W  s! {. M7 z2 R( V
  17.                 }
    4 c$ \4 q3 X6 y/ i5 Q/ E
  18.         }       
    . ]; [9 @3 U- P3 `; Y
  19.         //修改1 结束4 H9 z) V; {  H* E# H. U: @
  20. }
复制代码
修改2:大概500行,原始代码为:
! F" W7 ~9 B8 `# U5 d% L
  1. else {
    8 o$ }5 e7 R2 j) i% ]5 s% N
  2.         imageAlphaBlending($watermark_logo, true);                               
    # Y" t/ G+ D% k+ {
  3.         imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);3 t  h. g7 M3 G8 l  u
  4. }
复制代码
修改为:
6 ~( v4 q* ^# T1 I8 r; O) @9 x, ^
  1. else {
    " Q. I2 g7 E! G5 D6 u. z
  2.         imageAlphaBlending($watermark_logo, true);5 G$ _+ Y0 g( [2 Q; {" K* F
  3.         //修改2 开始
    , V7 @/ i# |3 |" j/ t( Y0 V. D
  4.         if(intval($this->imginfo['width']/$logo_w)>=3){/ V& \: M; q' k: v$ `' b& M
  5.                 $wblank=($logo_w+$this->imginfo['width']%$logo_w)/intval($this->imginfo['width']/$logo_w);/ v: y  [! Z% u# F9 @( a' L
  6.                 $hblank=($logo_h+$this->imginfo['height']%$logo_h)/intval($this->imginfo['height']/$logo_h);
    $ i# C3 U# v. _% U: |9 v
  7.                 for($x = $wblank;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+$wblank){
    , d" u5 D# V/ [; a. o, z
  8.                         for($y = $hblank;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+$hblank){: e/ Q( n' K* @$ s
  9.                                 imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);7 i) y* n# q; G: g7 h4 L
  10.                         }
    # F$ R4 ^' w7 c, s" p8 T. ^
  11.                 }       
    7 w; O! ]: \  R! b" ~- ^8 g
  12.         }else{
    " h: I5 O$ T9 G% x! }6 ]7 y$ Q
  13.                 for($x = 5;$x+$logo_w<=$this->imginfo['width'];$x=$x+$logo_w+10){- X9 v( S1 u+ ^6 n
  14.                         for($y = 5;$y+$logo_h<=$this->imginfo['height'];$y=$y+$logo_h+10){
    9 p6 n+ t4 q4 K
  15.                                 imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);
    / |0 M2 Z9 k4 s1 N4 G' H( E- D6 ?
  16.                         }
    . _" R' j2 t9 X' w2 Z5 @
  17.                 }$ U! \: h- _+ d& Y; T% a7 K( J, R
  18.         }                                        7 l5 |) x3 G! |8 m; U7 m+ i0 R. G
  19.         //imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $this->param['watermarktrans'][$type]);% e& G" i- q5 @
  20.         //修改2 结束
    ; H. Y9 u- v( [+ y& x8 n
  21. }
复制代码

' M5 \0 N  e1 x; z# c  d3 Y& _3 n! n+ q0 E
修改后的水印平铺效果
( c$ c( ^: T! Z 20170328102409786.jpg

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告

兔源码网 (公网安备36112102000036号 赣ICP备17001544号)

兔源码 QQ交流群:493651246  GMT+8, 2020-1-22 06:49
←站长统计工具 查看密码:tuyuanma

兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386 网站地图

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

     
快速回复 返回顶部 返回列表