php水印中文
⑴ 誰有能用的php給圖片加文字水印,最好有使用方法,注意:一定是能用的,功能強不強大另說
<?php
/*PHP圖片加文字水印類庫
  QQ:3697578482 傷心的歌
  
  該類庫暫時只支持文字水印,位置為右下角,顏色隨機
  
 調用方法:
   1、在需要加水印的文件頂部引入類庫:
      include_once 'imageClass.php';
   2、聲明新類:
	  $tpl=new image_fu;
   3、給圖片水印提供參數:
      $tpl->img(圖片路徑,水印文字,字體路徑,字體大小,字體角度);
	  比如:$tpl->img('abc.jpg','這是水印文字','ziti.ttf',30,0)
	  
*/
 class image_fu{
	 
	 private $image;
	 private $img_info;
	 private $img_width;
	 private $img_height;
	 private $img_im;
	 private $img_text;
	 private $img_ttf='';
	 private $img_new;
	 private $img_text_size;
	 private $img_jd;
function img($img='',$txt='',$ttf='',$size=12,$jiao=0){
		if(isset($img)&&file_exists($img)){//檢測圖片是否存在
		   $this->image   =$img; 
		   $this->img_text=$txt;
		   $this->img_text_size=$size;
		   $this->img_jd=$jiao;
		  if(file_exists($ttf)){
		   $this->img_ttf=$ttf;
		  }else{
		   exit('字體文件:'.$ttf.'不存在!'); 
		  }
		   $this->imgyesno();
		}else{
	      exit('圖片文件:'.$img.'不存在');
	   } 
	 }
	
	 private function imgyesno(){
		
		$this->img_info  =getimagesize($this->image);
		$this->img_width =$this->img_info[0];//圖片寬
		$this->img_height=$this->img_info[1];//圖片高
		
		//檢測圖片類型
		switch($this->img_info[2]){
             case 1:$this->img_im = imagecreatefromgif($this->image);break; 
             case 2:$this->img_im = imagecreatefromjpeg($this->image);break; 
             case 3:$this->img_im = imagecreatefrompng($this->image);break; 
             default:exit('圖片格式不支持水印'); 
		}
		
		   $this->img_text();
	 }
private function img_text(){
		 
		 imagealphablending($this->img_im,true);
		 
		 //設定顏色
		  $color=imagecolorallocate($this->img_im,rand(0,255),rand(0,255),rand(0,255));
		  $txt_height=$this->img_text_size;
		  $txt_jiao=$this->img_jd;
		  $ttf_im=imagettfbbox($txt_height,$txt_jiao,$this->img_ttf,$this->img_text);
		  $w = $ttf_im[2] - $ttf_im[6]; 
          $h = $ttf_im[3] - $ttf_im[7]; 
		  //$w = $ttf_im[7]; 
          //$h = $ttf_im[8]; 
          unset($ttf_im);
		  
		  $txt_y     =$this->img_height-$h;
		  $txt_x     =$this->img_width-$w;
		  //$txt_y     =0;
		  //$txt_x     =0;
$this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiao,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
		 
		 @unlink($this->image);//刪除圖片
		switch($this->img_info[2]) {//取得背景圖片的格式 
          case 1:imagegif($this->img_im,$this->image);break; 
          case 2:imagejpeg($this->img_im,$this->image);break; 
          case 3:imagepng($this->img_im,$this->image);break; 
          default: exit('水印圖片失敗'); 
        } 
	 }
//顯示圖片
	 function img_show(){echo '<img src="'.$this->image.'" border="0" alt="'.$this->img_text.'" />';}
	 
	 //釋放內存
	 private function img_nothing(){
		 unset($this->img_info); 
         imagedestroy($this->img_im); 
	 }
	 
 }
 
?>
⑵ phpcms如何使用水印功能
phpcms水印功能只有在添加標題圖片的時候生成帶水印的圖片。 編輯器上傳的圖片不能增加水印和縮略圖 添加水印功能: 1,首先查看伺服器參數查看 圖形處理 GD Library 這個選項是不是支持。 這個 phpcms水印功能只有在添加標題圖片的時候生成帶水印的圖片。 編輯器上傳的圖片不能增加水印和縮略圖 添加水印功能: 1,首先查看伺服器參數查看 圖形處理 GD Library 這個選項是不是支持。 這個在剛進後台管理就可以看到。 2,系統設置---基本配置---圖形處理 水印類型選擇 文字水印活著圖片水印 當選擇類型為文字水印時,需要填寫水印的文字 並且一定到將文字字體文件拷貝到class/fonts/文件夾下面。 其中默認的class/fonts/simhei.ttf,為字體文件。 可以在widows操作系統下的字體庫裡面找到想要的字體。 中文字體必須使用中文的字體文件。 當設置為圖片水印時,需要上傳圖片水印的圖片。水印圖片需要是靜態的gif圖片,或者jpg。不可使用動態的圖片。
⑶ php添加文字和圖片水印問題。
//可能是你的編碼設置有問題,在配置文件中設置編碼為UTF-8或者別的,反正和你其它地方編碼統一
header('Content-Type:text/html;charset=utf-8');
⑷ php利用gd2給圖片加水印如何解決水印中文亂碼
PHP目前對中文支持並不是很好要用中文建議用圖片水印
⑸ phpcms如何使用水印功能
phpcms水印功能只有在添加標題圖片的時候生成帶水印的圖片。
編輯器上傳的圖片不能增加水印和縮略圖
添加水印功能:
1,首先查看伺服器參數查看
圖形處理 GD Library   這個選項是不是支持。
這個
phpcms水印功能只有在添加標題圖片的時候生成帶水印的圖片。
編輯器上傳的圖片不能增加水印和縮略圖
添加水印功能:
1,首先查看伺服器參數查看
圖形處理 GD Library   這個選項是不是支持。
這個在剛進後台管理就可以看到。
2,系統設置---基本配置---圖形處理
水印類型選擇 文字水印活著圖片水印
當選擇類型為文字水印時,需要填寫水印的文字
並且一定到將文字字體文件拷貝到class/fonts/文件夾下面。
其中默認的class/fonts/simhei.ttf,為字體文件。
可以在widows操作系統下的字體庫裡面找到想要的字體。
中文字體必須使用中文的字體文件。
當設置為圖片水印時,需要上傳圖片水印的圖片。水印圖片需要是靜態的gif圖片,或者jpg。不可使用動態的圖片。
⑹ PHP給圖片添加文字水印
請確認C:\WINDOWS\Fonts\simkai.ttf';是否支持中文 
或不要轉換
$str = iconv('GB2312','UTF-8',$str);
直接
$str=$str;
⑺ PHP如何對上傳的圖片加水印
這個要用到PHP的GD擴展,用這個擴展庫可以給圖片加水印。
參考一下這段代碼:
<?php 
/* 
* 功能:PHP圖片水印 (水印支持圖片或文字) 
* 參數: 
* $groundImage 背景圖片,即需要加水印的圖片,暫只支持GIF,JPG,PNG格式; 
* $waterPos 水印位置,有10種狀態,0為隨機位置; 
* 1為頂端居左,2為頂端居中,3為頂端居右; 
* 4為中部居左,5為中部居中,6為中部居右; 
* 7為底端居左,8為底端居中,9為底端居右; 
* $waterImage 圖片水印,即作為水印的圖片,暫只支持GIF,JPG,PNG格式; 
* $waterText 文字水印,即把文字作為為水印,支持ASCII碼,不支持中文; 
* $textFont 文字大小,值為1、2、3、4或5,默認為5; 
* $textColor 文字顏色,值為十六進制顏色值,默認為#FF0000(紅色); 
* 
* 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG 
* $waterImage 和 $waterText 最好不要同時使用,選其中之一即可,優先使用 $waterImage。 
* 當$waterImage有效時,參數$waterString、$stringFont、$stringColor均不生效。 
* 加水印後的圖片的文件名和 $groundImage 一樣。 
* 作者:longware @ 2004-11-3 14:15:13 
*/ 
function imageWaterMark($groundImage,$waterPos=0,$waterImage=」",$waterText=」",$textFont=5,$textColor=」#FF0000″) 
{ 
$isWaterImage = FALSE; 
$formatMsg = 「暫不支持該文件格式,請用圖片處理軟體將圖片轉換為GIF、JPG、PNG格式。」; 
//讀取水印文件 
if(!emptyempty($waterImage) && file_exists($waterImage)) 
{ 
$isWaterImage = TRUE; 
$water_info = getimagesize($waterImage); 
$water_w = $water_info[0];//取得水印圖片的寬 
$water_h = $water_info[1];//取得水印圖片的高 
switch($water_info[2])//取得水印圖片的格式 
{ 
case 1:$water_im = imagecreatefromgif($waterImage);break; 
case 2:$water_im = imagecreatefromjpeg($waterImage);break; 
case 3:$water_im = imagecreatefrompng($waterImage);break; 
default:die($formatMsg); 
} 
} 
//讀取背景圖片 
if(!emptyempty($groundImage) && file_exists($groundImage)) 
{ 
$ground_info = getimagesize($groundImage); 
$ground_w = $ground_info[0];//取得背景圖片的寬 
$ground_h = $ground_info[1];//取得背景圖片的高 
switch($ground_info[2])//取得背景圖片的格式 
{ 
case 1:$ground_im = imagecreatefromgif($groundImage);break; 
case 2:$ground_im = imagecreatefromjpeg($groundImage);break; 
case 3:$ground_im = imagecreatefrompng($groundImage);break; 
default:die($formatMsg); 
} 
} 
else 
{ 
die(」需要加水印的圖片不存在!」); 
} 
//水印位置 
if($isWaterImage)//圖片水印 
{ 
$w = $water_w; 
$h = $water_h; 
$label = 「圖片的」; 
} 
else//文字水印 
{ 
$temp = imagettfbbox(ceil($textFont*5),0,」./cour.ttf」,$waterText);//取得使用 TrueType 字體的文本的范圍 
$w = $temp[2] - $temp[6]; 
$h = $temp[3] - $temp[7]; 
unset($temp); 
$label = 「文字區域」; 
} 
if( ($ground_w<$w) || ($ground_h<$h) ) 
{ 
echo 「需要加水印的圖片的長度或寬度比水印」.$label.」還小,無法生成水印!」; 
return; 
} 
switch($waterPos) 
{ 
case 0://隨機 
$posX = rand(0,($ground_w - $w)); 
$posY = rand(0,($ground_h - $h)); 
break; 
case 1://1為頂端居左 
$posX = 0; 
$posY = 0; 
break; 
case 2://2為頂端居中 
$posX = ($ground_w - $w) / 2; 
$posY = 0; 
break; 
case 3://3為頂端居右 
$posX = $ground_w - $w; 
$posY = 0; 
break; 
case 4://4為中部居左 
$posX = 0; 
$posY = ($ground_h - $h) / 2; 
break; 
case 5://5為中部居中 
$posX = ($ground_w - $w) / 2; 
$posY = ($ground_h - $h) / 2; 
break; 
case 6://6為中部居右 
$posX = $ground_w - $w; 
$posY = ($ground_h - $h) / 2; 
break; 
case 7://7為底端居左 
$posX = 0; 
$posY = $ground_h - $h; 
break; 
case 8://8為底端居中 
$posX = ($ground_w - $w) / 2; 
$posY = $ground_h - $h; 
break; 
case 9://9為底端居右 
$posX = $ground_w - $w; 
$posY = $ground_h - $h; 
break; 
default://隨機 
$posX = rand(0,($ground_w - $w)); 
$posY = rand(0,($ground_h - $h)); 
break; 
} 
//設定圖像的混色模式 
imagealphablending($ground_im, true); 
if($isWaterImage)//圖片水印 
{ 
image($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷貝水印到目標文件 
} 
else//文字水印 
{ 
if( !emptyempty($textColor) && (strlen($textColor)==7) ) 
{ 
$R = hexdec(substr($textColor,1,2)); 
$G = hexdec(substr($textColor,3,2)); 
$B = hexdec(substr($textColor,5)); 
} 
else 
{ 
die(」水印文字顏色格式不正確!」); 
} 
imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B)); 
} 
//生成水印後的圖片 
@unlink($groundImage); 
switch($ground_info[2])//取得背景圖片的格式 
{ 
case 1:imagegif($ground_im,$groundImage);break; 
case 2:imagejpeg($ground_im,$groundImage);break; 
case 3:imagepng($ground_im,$groundImage);break; 
default:die($errorMsg); 
} 
//釋放內存 
if(isset($water_info)) unset($water_info); 
if(isset($water_im)) imagedestroy($water_im); 
unset($ground_info); 
imagedestroy($ground_im); 
} 
//————————————————————————————— 
$id=$_REQUEST['id']; 
$num = count($_FILES['userfile']['name']); 
print_r($_FILES['userfile']); 
print_r($_FILES['userfile']['name']); 
echo $num; 
echo 「<bR>」; 
if(isset($id)){ 
for($i=0;$i<$id;$i++){ 
if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile']['size']>0) 
{ 
$uploadfile = 「./」.time().」_」.$_FILES['userfile'][name][$i]; 
echo 「<br>」; 
echo $uploadfile; 
if (($_FILES['userfile']['tmp_name'][$i], $uploadfile)) 
{ 
echo 「OK<br>」; 
//文字水印 
//imageWaterMark($uploadfile,5,」",」www.lvye.info" target="_blank">http://www.lvye.info」,5,」#cccccc「); 
//圖片水印 
$waterImage=」logo_ok1.gif」;//水印圖片路徑 
imageWaterMark($uploadfile,9,$waterImage); 
echo 「<img src=\」".$uploadfile.」\」 border=\」0\」>」; 
} 
else 
{ 
echo 「Fail<br>」; 
} 
} 
} 
} 
?> 
<form enctype=」multipart/form-data」 method=」POST」> 
<?php 
for($a=0;$a<$id;$a++){ 
echo 「文件: <input name=\」userfile[]\」 type=\」file\」><br>」; 
} 
?> 
<input type=」submit」 value=」上傳」> 
</form>
⑻ PHP給圖片加水印的思想是什麼
貼個php的圖片處理類 你可以自己研究下 共同進步 呵呵 
/*
此類包含以下功能
A.生成縮略圖
B.給圖片添加文字水印(包括中文)
C.將指定的圖片旋轉90度/180度/270度,並保存至文件
D.將圖片水平/垂直翻轉,並保存至文件
E.在線裁剪圖片任意部分矩形(正在編寫之中)
    具體目標效果暫時可以參考 http://yananzb.com/cut/cut.htm
    期待您的響應
成員函數說明
---------------------------------------------------------------------------------------------
public void CImage::__construct(string $src_image_file)
    功能:類CImage的構造函數
    參數 
    $src_image_file    字元串,源圖片文件名 注意,目前只支持gif,png,jpeg,jpg格式,這是GD庫的限制,並非本程序的局限
---------------------------------------------------------------------------------------------
public bool CImage: thumb($image_dist,$x)   
    功能:根據源圖片生成縮略圖,並保存至文件
    $image_dist        字元串         目標縮略圖片路徑及文件名 如 /File/th.jpg
    $x                        整型                目標縮略圖片的尺寸限制即當原始圖片的寬大於高時,那麼新的縮略圖的寬為$x,反之高為$x
---------------------------------------------------------------------------------------------
public bool image_press($image_dist,$str,$font="simkai.ttf")
函數功能:
    圖片生成水印並保存新圖片至目標文件
    參數說明:
    $image_dist 字元串        目標圖片名
    $str                字元串        要寫入到圖片水印的字元串
    $font                字元串        合法的系統字體名或WEB目錄中正確的字體文件名
---------------------------------------------------------------------------------------------
public bool rotate($image_dist,$angle)
    函數功能:
        將源圖片旋轉一定角度並將新圖片保存至文件
    參數說明:
        $image_dist            字元串        目標圖片文件名
        $angle                    整數            要旋轉的角度 只能是90或180或270度
---------------------------------------------------------------------------------------------
public bool rotate_h($image_dist)
    函數功能:
        將源圖片水平翻轉,並將新圖片保存至文件
    參數說明:
        $image_dist        字元串        目標圖片文件名
---------------------------------------------------------------------------------------------
public bool rotate_v($image_dist)
函數功能:
        將源圖片垂直翻轉,並將新圖片保存至文件
    參數說明:
        $image_dist        字元串        目標圖片文件名
---------------------------------------------------------------------------------------------
使用範例:
$p=new CImage("s.jpg");        //創建一個圖片處理對象
$p->thumb("thumb.jpg",300);    //生成縮略圖 限制尺寸為300,保存為thumb.jpg
$p->rotate("rt.jpg",90);        //旋轉90度,並保存為rt.jpg,類似地,你可以將90換成180,270進行旋轉
$p->rotate_h("h.jpg");        //水平翻轉
$p->rotate_v("v.jpg");        //垂直翻轉
*/
class CImage{
    var $src_image;
    var $width;
    var $height;
    var $image_type;
    var $img;
    var $src_x;
    var $src_y;
   
    function __construct($image_file)
    {
        $info=GetImageSize($image_file);
        $this->src_image=$image_file;
        $this->width=$info[0];
        $this->height=$info[1];
        
        switch($info[2])
        {
            case 1:
                $this->image_type="gif";
                break;
            case 2:
                $this->image_type="jpeg";
                break;
            case 3:
                $this->image_type="png";
                break;
            default:
                return false;
                //echo("Unsurport Image type.");
                break;
        }    //swith end
        //echo "ok";
        $new_function='ImageCreateFrom'.ucfirst($this->image_type);
        $this->img=$new_function($this->src_image);
        $this->src_x=ImageSX($this->img);
        $this->src_y=ImageSY($this->img);
    }
    function thumb($image_dist,$x)        //$x為新圖的限制邊的尺寸
    {        
        $src_x=ImageSX($this->img);
        $src_y=ImageSY($this->img);
        $scale=min($x/$src_x,$x/$src_y);
   
        if($scale<1)
        {
            $new_x=floor($scale*$src_x);
            $new_y=floor($scale*$src_y);
            $img_tmp=ImageCreateTrueColor($new_x,$new_y);    //set the size of Canvas for the new Image
            ImageCopyResampled($img_tmp,$this->img,0,0,0,0,$new_x,$new_y,$src_x,$src_y);    //Resampled
            ImageDestroy($this->img);
            $new_function="Image".ucfirst($this->image_type);
            return $new_function($img_tmp,$image_dist);
        }
    }    //  thumb end
   
 //給圖片生成文字水印
    function image_press($image_dist,$str,$font="simkai.ttf") { 
        $str=iconv("GB2312","utf-8",$str);            
        $blue=ImageColorAllocate($this->img,90,255,255);
        $white=ImageColorAllocate($this->img,255,0,0);
        ImageTTFText($this->img,20,0,$this->src_x/2/2,$this->src_y-80,$white,$font,$str);
        $new_function="Image".ucfirst($this->image_type);
        return $new_function($this->img,$image_dist);        
    }
    function rotate($image_dist,$angle)
    {
        $img_tmp=null;
        $new_function="Image".ucfirst($this->image_type);
        if(($angle!=90)&&($angle!=180)&&($angle!=270))
        {
            echo("Un-valid angle on calling CImage::rotate(\$image_dist,\$angle) .<p>The valid angle must be 90 or 180 or 270.");
            return false;
        }
        if(($angle==90)||($angle==270))
        {
            $img_tmp=ImageCreateTrueColor($this->src_y,$this->src_x);
        }
        else
        {
            $img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);
        }
        
        switch($angle)
        {
            case 90:
                for($i=0;$i<$this->src_x;$i++)
                {
                    for($j=0;$j<$this->src_y;$j++)
                    {
                        ImageSetPixel($img_tmp,$this->src_y-$j-1,$i,ImageColorAt($this->img,$i,$j));   
                    }
                }   
                return $new_function($img_tmp,$image_dist);
                break;
            case 180:
                for($i=0;$i<$this->src_x;$i++)
                {
                    for($j=0;$j<$this->src_y;$j++)
                    {
                        ImageSetPixel($img_tmp,$this->src_x-$i-1,$this->src_y-$j-1,ImageColorAt($this->img,$i,$j));   
                    }
                }
                return $new_function($img_tmp,$image_dist);
                break;
            case 270:
                for($i=0;$i<$this->src_x;$i++)
                {
                    for($j=0;$j<$this->src_y;$j++)
                    {
                        ImageSetPixel($img_tmp,$j,$this->src_x-$i-1,ImageColorAt($this->img,$i,$j));   
                    }
                }
                return $new_function($img_tmp,$image_dist);
                break;
        }    //end switch
        
    }        //end rotate
   
    function rotate_h($image_dist)
    {
        $new_function="Image".ucfirst($this->image_type);
        $img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);
        ImageCopyResampled($img_tmp,$this->img,0,0,$this->src_x-1,0,$this->src_x,$this->src_y,-$this->src_x,$this->src_y); //水平翻轉
        return    $new_function($img_tmp,$image_dist);   
    }
   
    function rotate_v($image_dist)
    {
    $new_function="Image".ucfirst($this->image_type);
    $img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);
    ImageCopyResampled($img_tmp,$this->img,0,0,0,$this->src_y-1,$this->src_x,$this->src_y,$this->src_x,-$this->src_y);
    return $new_function($img_tmp,$image_dist);
    }   
}    //end CImage
⑼ php如何給圖片加文字水印
我知道的有三種,都是使用GD庫的image函數
一種是直接在圖片上寫文字
imagefttext();
一種是帶透明度的水印圖片
image();
還有一種是可以自定義水印圖片透明度的
imagemerge();
你想要什麼效果,可以接著細說
⑽ php 圖片上水印 圖片出不來 那位大俠 幫幫忙 沒有錯誤提示 看著視頻做的
1、你的winter.jpg與你的PHP是否在同一目錄
2、圖片是否完好(不可破損或者無法打開)
3、$te,'simkai.ttf' 字體文件是否在PHP同一目錄
