K9 通用版 博客版 论坛版 地方门户版 企业版 |   企业(ASP) 分类 使用 分享 疑问 模板 建议 评论 错误 水坊
                          +新建主题 [Ajax]
                          填写帐号密码即可完成注册
                          +新建话题 最新回复排序 最新主题排序 精华帖子

                          KINGCMS PHP 支持添加水印

                          1234Next >

                          tx1860 发表于:12-09-13 13:45 [添加收藏] 楼主 [回复] #Top#
                          tx1860 人气:187 积分:352 金币:2667
                          KC元老

                          1.打开system/lib/func.php

                          查找

                          if(kc_f_put_contents($path,$img)){//写文件成功

                          下面添加 

                          $markImg = ROOT."images/watermark.png";
                          if(is_file($markImg)){//确定文件存在
                          setWater(ROOT.$path,$markImg,'','',9,'','img');

                          }

                          2.尾部添加水印函数,代码见附件

                          点击打开链接

                          3.上传水印到images目录,水印命名为watermark.png



                          tx1860 发表于:12-09-13 13:45 沙发 [回复] #Top#
                          tx1860 人气:187 积分:352 金币:2667
                          KC元老
                          支持 png 和GIF 两种水印格式
                          ww715519816 发表于:12-09-13 20:58 板凳 [回复] #Top#
                          ww715519816 人气:0 积分:36 金币:40
                          哈哈 学习了 不错哦
                          dbwlw 发表于:12-09-14 17:32 4楼 [回复] #Top#
                          dbwlw 人气:0 积分:43 金币:20
                          这是真的吗,
                          szhualv 发表于:12-09-14 22:30 5楼 [回复] #Top#
                          szhualv 人气:0 积分:132 金币:20
                          这个真是不错。
                          tx1860 发表于:12-09-15 11:54 6楼 [回复] #Top#
                          tx1860 人气:187 积分:352 金币:2667
                          KC元老
                          = = 绝对真的
                          b6281564 发表于:12-09-15 23:17 7楼 [回复] #Top#
                          b6281564 人气:15 积分:17 金币:255
                          高级的方法
                          mycj 发表于:12-09-17 17:18 9楼 [回复] #Top#
                          mycj 人气:9 积分:35 金币:268
                          2.尾部添加水印函数,代码见附件

                          下载后是空的记事本呢?
                          tx1860 发表于:12-09-17 19:53 10楼 [回复] #Top#
                          tx1860 人气:187 积分:352 金币:2667
                          KC元老
                          ?#20197;?#27809;保存就传上去了

                          函数这个 


                          function setWater($imgSrc,$markImg,$markText,$TextColor,$markPos,$fontType,$markType)
                          {


                                   $srcInfo = @getimagesize($imgSrc);
                                   $srcImg_w = $srcInfo[0];
                                   $srcImg_h = $srcInfo[1];
                                          
                                   switch ($srcInfo[2]) 
                                   { 
                                          case 1: 
                                               $srcim =imagecreatefromgif($imgSrc); 
                                               break; 
                                          case 2: 
                                               $srcim =imagecreatefromjpeg($imgSrc); 
                                               break; 
                                          case 3: 
                                               $srcim =imagecreatefrompng($imgSrc); 
                                               break; 
                                          default: 
                                               die("不支持的图片文件类型"); 
                                               exit; 
                                   }
                                          
                                   if(!strcmp($markType,"img"))
                                   {
                                          if(!file_exists($markImg) || empty($markImg))
                                          {
                                               return;
                                          }
                                               
                                          $markImgInfo = @getimagesize($markImg);
                                          $markImg_w = $markImgInfo[0];
                                          $markImg_h = $markImgInfo[1];
                                               
                                          if($srcImg_w < $markImg_w || $srcImg_h < $markImg_h)
                                          {
                                               return;
                                          }
                                               
                                          switch ($markImgInfo[2]) 
                                          { 
                                               case 1: 
                                               $markim =imagecreatefromgif($markImg); 
                                               break; 
                                               case 2: 
                                               $markim =imagecreatefromjpeg($markImg); 
                                               break; 
                                               case 3: 
                                               $markim =imagecreatefrompng($markImg); 
                                               break; 
                                               default: 
                                               die("不支持的水印图片文件类型"); 
                                               exit; 
                                          }
                                               
                                          $logow = $markImg_w;
                                          $logoh = $markImg_h;
                                   }
                                          
                                   if(!strcmp($markType,"text"))
                                   {
                                          $fontSize = 16;
                                          if(!empty($markText))
                                          {
                                               if(!file_exists($fontType))
                                               {
                                               return;
                                               }
                                          }
                                          else {
                                               return;
                                          }
                                               
                                          $box = @imagettfbbox($fontSize, 0, $fontType,$markText);
                                          $logow = max($box[2], $box[4]) - min($box[0], $box[6]);
                                          $logoh = max($box[1], $box[3]) - min($box[5], $box[7]);
                                   }
                                          
                                   if($markPos == 0)
                                   {
                                          $markPos = rand(1, 9);
                                   }
                                          
                                   switch($markPos)
                                   {
                                          case 1:
                                               $x = +5;
                                               $y = +5;
                                               break;
                                          case 2:
                                               $x = ($srcImg_w - $logow) / 2;
                                               $y = +5;
                                               break;
                                          case 3:
                                               $x = $srcImg_w - $logow - 5;
                                               $y = +15;
                                               break;
                                          case 4:
                                               $x = +5;
                                               $y = ($srcImg_h - $logoh) / 2;
                                               break;
                                          case 5:
                                               $x = ($srcImg_w - $logow) / 2;
                                               $y = ($srcImg_h - $logoh) / 2;
                                               break;
                                          case 6:
                                               $x = $srcImg_w - $logow - 5;
                                               $y = ($srcImg_h - $logoh) / 2;
                                               break;
                                          case 7:
                                               $x = +5;
                                               $y = $srcImg_h - $logoh - 5;
                                               break;
                                          case 8:
                                               $x = ($srcImg_w - $logow) / 2;
                                               $y = $srcImg_h - $logoh - 5;
                                               break;
                                          case 9:
                                               $x = $srcImg_w - $logow - 5;
                                               $y = $srcImg_h - $logoh -5;
                                               break;
                                          default: 
                                               die("此位置不支持"); 
                                               exit;
                                   }
                                          
                                   $dst_img = @imagecreatetruecolor($srcImg_w, $srcImg_h);
                                          
                                   imagecopy ( $dst_img, $srcim, 0, 0, 0, 0, $srcImg_w, $srcImg_h);
                                          
                                   if(!strcmp($markType,"img"))
                                   {
                                          imagecopy($dst_img, $markim, $x, $y, 0, 0, $logow, $logoh);
                                          imagedestroy($markim);
                                   }
                                          
                                   if(!strcmp($markType,"text"))
                                   {
                                          $rgb = explode(',', $TextColor);
                                               
                                          $color = imagecolorallocate($dst_img, $rgb[0], $rgb[1], $rgb[2]);
                                          imagettftext($dst_img, $fontSize, 0, $x, $y, $color, $fontType,$markText);
                                   }
                                          
                                   switch ($srcInfo[2]) 
                                   { 
                                          case 1:
                                               imagegif($dst_img, $imgSrc); 
                                               break; 
                                          case 2: 
                                               imagejpeg($dst_img, $imgSrc); 
                                               break; 
                                          case 3: 
                                               imagepng($dst_img, $imgSrc); 
                                               break;
                                          default: 
                                               die("不支持的水印图片文件类型"); 
                                               exit; 
                                   }
                                          
                                   imagedestroy($dst_img);
                                   imagedestroy($srcim);
                          }
                          mycj 发表于:12-09-18 15:55 11楼 [回复] #Top#
                          mycj 人气:9 积分:35 金币:268
                          1.把第一步中的代码放进去后如下:
                          if(kc_f_put_contents($path,$img)){//写文件成功
                          $markImg = ROOT."images/watermark.png";
                          if(is_file($markImg)){//确定文件存在
                          setWater(ROOT.$path,$markImg,'','',9,'','img');

                          }
                          return $path;
                          }else{
                          return $imgpath;
                          }
                          ……

                          2.在system/lib/func.php尾部添加水印函数,我是直接将代码放到?>前的

                          3.水印图片目录:根目录/images/watermark.png

                          ?#22270;?#39640;手帮我看看,是哪步不对么?怎么?#30097;?#20256;的图片没有打水印呢?页面也没有报什么错

                          1234Next >

                          发表回复

                          帐号 匿名发布 审核后可见 [加载完整在线编辑器]
                          内容
                          验证码
                          KingCMS 内容管理系统

                          关于我们 联系我们 广告报价 付款方式 站点导航

                          Copyright © 2004-2015 Focuznet All rights reserved.

                          粤ICP备08008106号

                          福建快3遗漏数据