<optgroup id="kkemm"><object id="kkemm"></object></optgroup>
<optgroup id="kkemm"><small id="kkemm"></small></optgroup>
<xmp id="kkemm"><menu id="kkemm"></menu>
<center id="kkemm"></center>
<center id="kkemm"><div id="kkemm"></div></center>
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元老
我暈沒保存就傳上去了

函數這個 


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

勞駕高手幫我看看,是哪步不對么?怎么我上傳的圖片沒有打水印呢?頁面也沒有報什么錯

1234Next >

發表回復

帳號 匿名發布 審核后可見 [加載完整在線編輯器]
內容
驗證碼
KingCMS 內容管理系統

關于我們 聯系我們 廣告報價 付款方式 站點導航

Copyright © 2004-2015 Focuznet All rights reserved.

粵ICP備08008106號

北京快三车路线图
<optgroup id="kkemm"><object id="kkemm"></object></optgroup>
<optgroup id="kkemm"><small id="kkemm"></small></optgroup>
<xmp id="kkemm"><menu id="kkemm"></menu>
<center id="kkemm"></center>
<center id="kkemm"><div id="kkemm"></div></center>
<optgroup id="kkemm"><object id="kkemm"></object></optgroup>
<optgroup id="kkemm"><small id="kkemm"></small></optgroup>
<xmp id="kkemm"><menu id="kkemm"></menu>
<center id="kkemm"></center>
<center id="kkemm"><div id="kkemm"></div></center>