用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php图片增加中文与图片水印代码

时间:2015-01-23  来源:西部数据  作者:西部数据
$ico_pic 是你要给图片加水印的水印图片,其它的参数都有详细的说明,如果你正在找这类代码可以下载保存成php文件,再利用后面说的调用方法来调用生成水印图片类代码.

php图片增加中文与图片水印代码如下:

  1. <?php 
  2. class smallpic{ 
  3.  
  4.   private $src_pic;//原图 
  5.   private $ico_pic = "003.png";//水印图 
  6.   private $ico_text = "水印";//水印文字 
  7.   private $small_width;//缩略图宽度 
  8.   private $small_height;//缩略图高度 
  9.   private $is_ico_pic = true;//是否加图片水印 
  10.   private $is_text = true;//是否加文字水印 
  11.   private $src_x = 20;//水印在原图的x坐标 
  12.   private $src_y = 20;//水印在原图的y坐标 
  13.   private $ut = "utf-8";//文字编码 
  14.   private $font_color = "#990000";//文字水印颜色 
  15.   private $samll_pic_name = "smallpic";//小图的名称 
  16.   private $big_pic_name = "bigpic";//大图的名称 
  17.  
  18.  
  19.   function __construct($src_pic,$small_width,$small_height){ 
  20.    $this->checkfile($src_pic); 
  21.    $this->checkfile($this->ico_pic); 
  22.   $this->src_pic = $src_pic
  23.   $this->small_width = $small_width
  24.   $this->small_height = $small_height
  25.   } 
  26.  
  27.  private function __get($property_name){ 
  28.   return $this->$property_name
  29.  } 
  30.  
  31.  private function __set($property_name,$value){ 
  32.   return $this->$property_name = $value
  33.  } 
  34.  
  35.  
  36.  /** 
  37.   * 取得图片的一些基本信息,类型为array 
  38.   */ 
  39.   function getimageinfo($image){ 
  40.   return @getimagesize($image); 
  41.   } 
  42.  
  43.  /** 
  44.   * 把图片加载到php中 
  45.   * $image 传进来的图片 
  46.   */ 
  47.   function getimage($image){ 
  48.   $image_info = $this->getimageinfo($image); 
  49.   switch($image_info[2]){ 
  50.    case 1: 
  51.     $img = @imagecreatefromgif($image); 
  52.     break
  53.    case 2: 
  54.     $img = @imagecreatefromjpeg($image); 
  55.     break
  56.    case 3: 
  57.     $img = @imagecreatefrompng($image); 
  58.     break
  59.   } 
  60.   return $img
  61.   } 
  62.  
  63.  function createimageforsuffix($big_pic,$new_pic){ 
  64.   $image_info = $this->getimageinfo($this->src_pic); 
  65.   switch($image_info[2]){ 
  66.    case 1: 
  67.     //输出大图 
  68.     @imagegif($big_pic,$this->big_pic_name.".gif"); 
  69.     //输出小图 
  70.     @imagegif($new_pic,$this->samll_pic_name.".gif"); 
  71.     break
  72.    case 2: 
  73.     //输出大图 
  74.     @imagejpeg($big_pic,$this->big_pic_name.".jpg"); 
  75.     //输出小图 
  76.     @imagejpeg($new_pic,$this->samll_pic_name.".jpg"); 
  77.     break
  78.    case 3: 
  79.     //输出大图 
  80.     @imagepng($big_pic,$this->big_pic_name.".png"); 
  81.     //输出小图 
  82.     @imagepng($new_pic,$this->samll_pic_name.".png"); 
  83.     break
  84.   } 
  85.  } 
  86.  
  87.  function checkfile($file){ 
  88.   if(!file_exists($file)){ 
  89.    die("图片:".$file."不存在!"); 
  90.   } 
  91.  } 
  92.  
  93.  function createsmallimage(){ 
  94.   $big_pic = $this->getimage($this->src_pic); 
  95.   $big_pic_info = $this->getimageinfo($this->src_pic); 
  96.   $new_pic = $this->getimage($this->ico_pic); 
  97.   $new_pic_info = $this->getimageinfo($this->ico_pic); 
  98.   $rgb = $this->convcolor(); 
  99.  
  100.   //判断是按宽比例缩放还是按高比例缩放 
  101.   if($big_pic_info[0] > $big_pic_info[1]){ 
  102.    $ratio = $this->small_width/(int)$big_pic_info[0]; 
  103.    $small_pic_width = $this->small_width; 
  104.    $small_pic_height = (int)($big_pic_info[1]*$ratio); 
  105.   }else
  106.    $ratio = $this->small_height/(int)$big_pic_info[1]; 
  107.    $small_pic_height = $this->small_height; 
  108.    $small_pic_width = (int)($big_pic_info[0]*$ratio); 
  109.   } 
  110.  
  111.   //echo $small_pic_width = (int)($big_pic_info[0]*$ratio); 
  112.   //echo $small_pic_height = (int)($big_pic_info[1]*$ratio); 
  113.  
  114.   //是否打图片水印 
  115.   if ($this->is_ico_pic){ 
  116.    //打图片水印 
  117.    @imagecopy($big_pic,$new_pic,$this->src_x,$this->src_y,0,0,$new_pic_info[0],$new_pic_info[1]); 
  118.   } 
  119.   //是否打文字水印 
  120.   if ($this->is_text){ 
  121.    //设置文字颜色 
  122.    $text_color = @imagecolorallocate($big_pic,$rgb[0],$rgb[1],$rgb[2]); 
  123.    //转换文字编码 
  124.    $text = @iconv($this->ut,"utf-8",$this->ico_text); 
  125.    //打文字水印 
  126.    @imagettftext($big_pic,12,0,$this->src_x,$this->src_y,$text_color,"simkai_0.ttf",$text); 
  127.   } 
  128.   //新建一个新图片的画板 
  129.   $new_pic = @imagecreatetruecolor($small_pic_width,$small_pic_height); 
  130.   //生成缩略图 
  131.   @imagecopyresized($new_pic,$big_pic,0,0,0,0,$small_pic_width,$small_pic_height,$big_pic_info[0],$big_pic_info[1]); 
  132.   //输出图 
  133.   $this->createimageforsuffix($big_pic,$new_pic); 
  134.  } 
  135.  
  136.  /** 
  137.   * 类内部的功能函数把#000000转换成255,255,255 
  138.   */ 
  139.  private function convcolor(){ 
  140.   $rgb = array(); 
  141.   $color = preg_replace("/#/","",$this->font_color); 
  142.   $c = hexdec($color); 
  143.   $r = ($c >> 16) & 0xff; 
  144.   $g = ($c >> 8) & 0xff; 
  145.   $b = $c & 0xff; 
  146.   $rgb[0] = $r
  147.   $rgb[1] = $g
  148.   $rgb[2] = $b
  149.   return $rgb
  150.  } 
  151.  } 
  152.  
  153. //调用方法 
  154.   
  155.  
  156. $pic = new smallpic("002.jpg",600,300); 
  157.  $pic->is_text = true; 
  158.  $pic->is_ico_pic = true; 
  159.  $pic->ico_pic = "./images/004.png"
  160.  $pic->ico_text = "新年快乐!"
  161.  //$pic->src_x = 80; 
  162.  $pic->src_y = 80; 
  163.  $pic->ut = "utf-8"
  164.  $pic->font_color = "#0521f8"
  165.  $pic->samll_pic_name = "hslsamll"
  166.  $pic->big_pic_name = "hslbig"
  167.  $pic->createsmallimage(); 
  168. //开源代码phpfensi.com 
  169. ?> 
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门