程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php圖片增加中文與圖片水印代碼

php圖片增加中文與圖片水印代碼

編輯:關於PHP編程

$ico_pic 是你要給圖片加水印的水印圖片,其它的參數都有詳細的說明,如果你下大找這類代碼可以下載保存成php文件再利用後面說的調用方法來調用本生成水印圖片類代碼。

$ico_pic 是你要給圖片加水印的水印圖片,其它的參數都有詳細的說明,如果你下大找這類代碼可以下載保存成php教程文件再利用後面說的調用方法來調用本生成水印圖片類代碼。
 */

 class smallpic{

  private $src_pic;//原圖
  private $ico_pic = "003.png";//水印圖
  private $ico_text = "水印";//水印文字
  private $small_width;//縮略圖寬度
  private $small_height;//縮略圖高度
  private $is_ico_pic = true;//是否加圖片水印
  private $is_text = true;//是否加文字水印
  private $src_x = 20;//水印在原圖的x坐標
  private $src_y = 20;//水印在原圖的y坐標
  private $ut = "utf-8";//文字編碼
  private $font_color = "#990000";//文字水印顏色
  private $samll_pic_name = "smallpic";//小圖的名稱
  private $big_pic_name = "bigpic";//大圖的名稱


  function __construct($src_pic,$small_width,$small_height){
   $this->checkfile($src_pic);
   $this->checkfile($this->ico_pic);
  $this->src_pic = $src_pic;
  $this->small_width = $small_width;
  $this->small_height = $small_height;
  }

 private function __get($property_name){
  return $this->$property_name;
 }

 private function __set($property_name,$value){
  return $this->$property_name = $value;
 }


 /**
  * 取得圖片的一些基本信息,類型為array
  */
  function getimageinfo($image){
  return @getimagesize($image);
  }

 /**
  * 把圖片加載到php中
  * $image 傳進來的圖片
  */
  function getimage($image){
  $image_info = $this->getimageinfo($image);
  switch($image_info[2]){
   case 1:
    $img = @imagecreatefromgif($image);
    break;
   case 2:
    $img = @imagecreatefromjpeg($image);
    break;
   case 3:
    $img = @imagecreatefrompng($image);
    break;
  }
  return $img;
  }

 function createimageforsuffix($big_pic,$new_pic){
  $image_info = $this->getimageinfo($this->src_pic);
  switch($image_info[2]){
   case 1:
    //輸出大圖
    @imagegif($big_pic,$this->big_pic_name.".gif");
    //輸出小圖
    @imagegif($new_pic,$this->samll_pic_name.".gif");
    break;
   case 2:
    //輸出大圖
    @imagejpeg($big_pic,$this->big_pic_name.".jpg");
    //輸出小圖
    @imagejpeg($new_pic,$this->samll_pic_name.".jpg");
    break;
   case 3:
    //輸出大圖
    @imagepng($big_pic,$this->big_pic_name.".png");
    //輸出小圖
    @imagepng($new_pic,$this->samll_pic_name.".png");
    break;
  }
 }

 function checkfile($file){
  if(!file_exists($file)){
   die("圖片:".$file."不存在!");
  }
 }

 function createsmallimage(){
  $big_pic = $this->getimage($this->src_pic);
  $big_pic_info = $this->getimageinfo($this->src_pic);
  $new_pic = $this->getimage($this->ico_pic);
  $new_pic_info = $this->getimageinfo($this->ico_pic);
  $rgb = $this->convcolor();

  //判斷是按寬比例縮放還是按高比例縮放
  if($big_pic_info[0] > $big_pic_info[1]){
   $ratio = $this->small_width/(int)$big_pic_info[0];
   $small_pic_width = $this->small_width;
   $small_pic_height = (int)($big_pic_info[1]*$ratio);
  }else{
   $ratio = $this->small_height/(int)$big_pic_info[1];
   $small_pic_height = $this->small_height;
   $small_pic_width = (int)($big_pic_info[0]*$ratio);
  }

  //echo $small_pic_width = (int)($big_pic_info[0]*$ratio);
  //echo $small_pic_height = (int)($big_pic_info[1]*$ratio);

  //是否打圖片水印
  if ($this->is_ico_pic){
   //打圖片水印
   @imagecopy($big_pic,$new_pic,$this->src_x,$this->src_y,0,0,$new_pic_info[0],$new_pic_info[1]);
  }
  //是否打文字水印
  if ($this->is_text){
   //設置文字顏色
   $text_color = @imagecolorallocate($big_pic,$rgb[0],$rgb[1],$rgb[2]);
   //轉換文字編碼
   $text = @iconv($this->ut,"utf-8",$this->ico_text);
   //打文字水印
   @imagettftext($big_pic,12,0,$this->src_x,$this->src_y,$text_color,"simkai_0.ttf",$text);
  }
  //新建一個新圖片的畫板
  $new_pic = @imagecreatetruecolor($small_pic_width,$small_pic_height);
  //生成縮略圖
  @imagecopyresized($new_pic,$big_pic,0,0,0,0,$small_pic_width,$small_pic_height,$big_pic_info[0],$big_pic_info[1]);
  //輸出圖
  $this->createimageforsuffix($big_pic,$new_pic);
 }

 /**
  * 類內部的功能函數把#000000轉換成255,255,255
  */
 private function convcolor(){
  $rgb = array();
  $color = preg_replace("/#/","",$this->font_color);
  $c = hexdec($color);
  $r = ($c >> 16) & 0xff;
  $g = ($c >> 8) & 0xff;
  $b = $c & 0xff;
  $rgb[0] = $r;
  $rgb[1] = $g;
  $rgb[2] = $b;
  return $rgb;
 }
 }

//調用方法
 

$pic = new smallpic("002.jpg",600,300);
 $pic->is_text = true;
 $pic->is_ico_pic = true;
 $pic->ico_pic = "./images/004.png";
 $pic->ico_text = "新年快樂!";
 //$pic->src_x = 80;
 $pic->src_y = 80;
 $pic->ut = "utf-8";
 $pic->font_color = "#0521f8";
 $pic->samll_pic_name = "hslsamll";
 $pic->big_pic_name = "hslbig";
 $pic->createsmallimage();

?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved