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同一目录
