php 图片加上文字水印

<?php

 $img='22.jpg';

 $arr=getimagesize($img);

 //print_r($arr);//可以发现,$arr[0]为图片的宽度,$arr[1]为图片的高度,$arr[2]为图片的类型,即图片的扩展名,

 switch($arr[2]){

  case 1:

   $imgn = imagecreatefromgif($img);

   break;

  case 2:

   $imgn = imagecreatefromjpeg($img);

   break;

  case 3:

   $imgn = imagecreatefrompng($img);

   break;

  case 6:

   $imgn = imagecreatefromwbmp($img);

   break;

  default:

   die("不支持的文件类型");

   exit;

 }

 

//开始打水印。写一下准备打上的文字

 $str = "要打印的文字";

 $str1 = "要打印的文字";

 //$str = iconv("gb2312","utf-8","要打印的文字"); //(这个语句最后说明);

 //然后以用调色板设置文字的颜色:

 //$dest=imagecreatetruecolor(100,100); 

 $bg = imagecolorallocate($imgn,255,255,255);

 //$bg = imagecolorallocate($imgn,0,0,0 );

 //由于php5并不知道文字的字体 所以还要载入文字字体 在这里我们载入windows自带的simhei.ttf黑体字,(载入之前把该字体文件复制到项目的文件夹下面) 如下:

 imagettftext($imgn,10,0,20,10,$bg,'simhei.ttf',$str); //这样就将$str文字打到$imgn上

 imagettftext($imgn,10,0,20,46,$bg,'simhei.ttf',$str1);

 header('content-type:image/jpeg');

 $uploaddir = './image/';        

 $thumb_path = './image/'.date("Ymd").'/';

 if(!is_dir($uploaddir)){

  mkdir($uploaddir,0777);

 }

 if(!is_dir($thumb_path)){ 

  mkdir($thumb_path,0777); 

 }

 $imgs = $thumb_path.time().'.jpg'; 

 imagejpeg($imgn,$imgs,'80');

 echo "<img src='{$imgs}'>";

  //最后,说明一下相关函数的作用:GetImageSize就不用说了吧,$str = iconv("gbk","utf-8","要打上的文字");说明将页面默认的编码属性gbk改成utf-8国际标准编码。$bg = imagecolorallocate()将图片的前景文字设置成白色其中0,0,0分别代表red green blue颜色的分量,imagettftext函数 12代表字体大小 9标示倾斜度 10,10为打上水印的颜色的像素位置 header('content-type:image/jpeg'); imagejpeg($imgn);表示该php5页面输出的文件类型是图片类型。

 ?>


你可能感兴趣的:(php 图片加上文字水印)