Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 类似铁血社区 水印插件 DZ7.0 修改版

[复制链接]
adminadam 发表于 2009-1-3 23:13:47 | 显示全部楼层 |阅读模式
插件发布
插件名称: 水印插件
插件来源:
适用版本: Discuz! 7.0
语言编码: GBK简体 
最后更新时间:
插件作者: 不详
插件简介: 水印插件 DZ7.0 修改版
本帖最后由 adminadam 于 2009-8-10 01:13 编辑

期待高手完善

先看图片演示



1.修改文件bbs/admin/中的 settings.inc.php

查找
  1. <td><input class="radio" type="radio" name="settingsnew[watermarkstatus]" value="9" '.$checkwm[9].'> #9</td>
复制代码
后面加
  1. <td><input class="radio" type="radio" name="settingsnew[watermarkstatus]" value="10" '.$checkwm[10].'> #10</td>
复制代码
2.修改文件:/include/image.class.php

查找
  1. if(!defined('IN_DISCUZ')) {

  2.         exit('Access Denied');

  3. }
复制代码
后面加
  1. function GBKToUnicode(&$String)
  2.         {
  3.           $UnicodeData=file(DISCUZ_ROOT."./include/gbkunicode.data");
  4.                 $ReturnString="";
  5.                 $StringLength=strlen($String);
  6.                 $p="";
  7.                 $q="";
  8.                 for($i=0;$i<$StringLength;$i++){
  9.                         if(($p=ord(substr($String,$i,1)))>128){
  10.                                 $q=ord(substr($String,++$i,1));
  11.                                 if ($p>254) {
  12.                                     $ReturnString.='&#'.hexdec('003f').';';
  13.                                 }
  14.                                 elseif ($q<64||$q>254) {
  15.                                     $ReturnString.='&#'.hexdec('003f').';';
  16.                                 }
  17.                                 else {
  18.                                         $q=($q-64)*4;
  19.                                         $ReturnString.='&#'.hexdec(substr($UnicodeData[$p-128],$q,4)).';';
  20.                                 }
  21.                         }
  22.                         else {
  23.                                 if ($p==128) {
  24.                                     $ReturnString.='&#'.hexdec('20ac').';';
  25.                                 }
  26.                                 else {
  27.                                         $ReturnString.='&#'.$p.';';
  28.                                 }
  29.                         }
  30.                 }
  31.                 return $ReturnString;
  32. }
复制代码
继续查找
  1. imageAlphaBlending($watermark_logo, true);

  2. imageCopyMerge($dst_photo, $watermark_logo, $x, $y, 0, 0, $logo_w, $logo_h, $watermarktrans);
复制代码
替换成
  1. //开始
  2.                                                                                                                                                                                                 imageAlphaBlending($watermark_logo, true);
  3.                                                 
  4.                                                 if($watermarkstatus == 10) {
  5.                                                         
  6.                                                         //计算黑色的方框的参数
  7.                                                         $bg_x1 = 0;
  8.                                                         $bg_y1 = $img_h;
  9.                                                         $bg_x2 = $img_w;
  10.                                                         $bg_y2 = $img_h + $logo_h + 8;
  11.                                                                                                                                                                                                                                 $watermarked = @imagecreatetruecolor ($img_w, $img_h + $logo_h + 15);
  12.                                                         $bg_color = imagecolorallocate($dst_photo, 0, 0, 0); //这里参数0-255,对应颜色R/G/B
  13.                                                          //生成新图片
  14.                                                          imagecopymerge ( $watermarked, $dst_photo, 0, 0, 0, 0, $img_w, $img_h, 100);
  15.                                                         
  16.                                                         //在底部画黑色方框
  17.                                                         imagefilledrectangle($watermarked, $bg_x1, $bg_y1, $bg_x2, $bg_y2, $bg_color);
  18.                                                         
  19.                                                         //logo位置
  20.                                                         imageCopyMerge($watermarked, $watermark_logo, $bg_x1 + 10,        $bg_y1 + 5, 0, 0, $logo_w, $logo_h, $watermarktrans);
  21.                                                         
  22.                                                         global $discuz_user;
  23.                                                         
  24.                                                         //文字内容                                                                              
  25.                                                         $text = "本图片由 $discuz_user 上传到校内网www.xiaonei.com ".date('y年n月j日-H点m分', time());                                                        
  26.                                                         $font = './images/fonts/ch/simsun.ttf';        //字体参数
  27.                                                         $text_h = 10;         //文字高度
  28.                                                                                                                                                      $text_x =round(($img_w - ($logo_w + 20 )) / 2) + ($logo_w + 20) - round(($text_h * strlen($text)) / 2);
  29.                                                         $text_y = round(($bg_y2 - $bg_y1 - $text_h) / 2) + $bg_y1 + 13;        
  30.                                                         $text_color = imagecolorallocate($watermarked, 0xff, 0xff, 0xff);                //0xff是255的十六进制,你也可以直接用255,这里参数0-255,对应颜色R/G/B               
  31.                                                         //imagestring($dst_photo, $font, $text_x, $text_y, $text, $text_color);        
  32.                                                         $text = GBKToUnicode($text);                                                
  33.                                                         imagettftext($watermarked, $text_h, 0, $text_x, $text_y, $text_color, $font, $text);
  34.                                                          
  35.                                                         
  36.                                                 } else {                                                
  37.                                                         imageCopyMerge($dst_photo, $watermark_logo, $x,        $y, 0, 0, $logo_w, $logo_h, $watermarktrans);
  38.                                                 }
  39.                                                 $dst_photo = $watermarked;
  40.                                                 //结束
复制代码
3.上传附件gbkunicode到include下



4.替换字体

所用到的simsun.ttc为宋体字体,请到本地电脑里面c:\windows\fonts下面找到宋体&新宋体,复制到/images/fonts/ch/即可;simsun.ttc重命名为的simsun.ttf

完成


说明
  1. 如果你不想有logo图标的话,就用个1*1的gif图片去代替/images/common/watermark.gif
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
失落的灵魂10 发表于 2009-1-3 23:33:44 | 显示全部楼层
传说中的沙发?
回复

使用道具 举报

 楼主| adminadam 发表于 2009-1-4 00:21:00 | 显示全部楼层
有的论坛应该 很需要~~~~~~~~~~~~~
回复

使用道具 举报

心灵刺客 发表于 2009-1-4 00:46:33 | 显示全部楼层
不错 支持修改的
回复

使用道具 举报

古龙逸飞 发表于 2009-1-4 00:48:59 | 显示全部楼层
同感 支持修改的
回复

使用道具 举报

sonyr 发表于 2009-1-4 20:26:05 | 显示全部楼层
貌似还不错噢~~~~
回复

使用道具 举报

haihai912 发表于 2009-1-6 18:48:49 | 显示全部楼层
在用  中文不显示。
  字体已经上传 6.1也用过
回复

使用道具 举报

 楼主| adminadam 发表于 2009-1-7 02:35:21 | 显示全部楼层
7# haihai912


你找6.1 中文修改的 7.0应该可以
回复

使用道具 举报

sunjuncai 发表于 2009-1-7 10:35:01 | 显示全部楼层
谢谢 楼主。。。。
回复

使用道具 举报

hello001 发表于 2009-1-20 12:06:28 | 显示全部楼层
不错,多谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-17 11:28 , Processed in 0.029821 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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