首頁  >  文章  >  後端開發  >  ueditor 圖片加浮水印

ueditor 圖片加浮水印

WBOY
WBOY原創
2016-07-25 08:49:331277瀏覽
  1. /*PHP圖片加文字水印類庫
  2. 這類庫暫時只支援文字水印,位置為文字水印,位置為右下角,顏色隨機
  3. 呼叫方法:
  4. 1、在需要加浮水印的檔案頂部引入類別庫:
  5. include_once 'imageClass.php';
  6. 2、宣告新類別:
  7. $tpl=new image_fu;
  8. 3、給圖片浮水印提供參數:
  9. $tpl->img(圖片路徑,水印文字,字體路徑,字體大小,字體角度);
  10. 例如:$ tpl->img('abc.jpg','這是水印文字','ziti.ttf',30,0)
  11. */
  12. class image_fu{
  13. private $image;
  14. private $img_info;
  15. private $img_width;
  16. private $img_height;
  17. private $img_im;
  18. private$img_text;
  19. private $img_new;
  20. private $img_text_size;
  21. private $img_jd;
  22. function img($img='',$$='',$ttf='' ,$size=12,$jiaodu=0){
  23. if(isset($img)&&file_exists($img)){//偵測圖片是否存在
  24. $this->image =$img;
  25. $this->img_text=$txt;
  26. $this->img_text_size=$size;
  27. $this->img_jd=$jiaodu;
  28. if(file_exists($ttf)){
  29. $this ->img_ttf=$ttf;
  30. }else{
  31. exit('字型檔:'.$ttf.'不存在!');
  32. }
  33. $this->imgyesno();
  34. }else{
  35. exit('圖片檔案:'.$img.'不存在');
  36. }
  37. }
  38. private function imgyesno(){
  39. $this->img_info =getimagesize($this->image);
  40. $this->img_width =$this->img_info[0];//圖片寬
  41. $this->img_height=$this- >img_info[1];//圖片高
  42. //偵測圖片類型
  43. switch($this->img_info[2]){
  44. case 1:$this->img_im = imagecreatefromgif( $this->image);break;
  45. case 2:$this->img_im = imagecreatefromjpeg($this->image);break;
  46. case 3:$this->img_im = imagecreatefrompng($this-> image);break;
  47. default:exit('圖片格式不支援浮水印');
  48. }
  49. $this->img_text();
  50. }
  51. private function img_text(){
  52. imagealphablending($this->img_im,true);
  53. //設定顏色
  54. $color=imagecolor. 255,255,255);
  55. $txt_height=$this->img_text_size;
  56. $txt_jiaodu=$this->img_jd;
  57. $ttf_im=imagettfbbox($web_height,$ >img_text);
  58. $w = $ttf_im[2] - $ttf_im[6];
  59. $h = $ttf_im[3] - $ttf_im[7];
  60. //$w = $ttf_im [7];
  61. //$h = $ttf_im[8];
  62. unset($ttf_im);
  63. $txt_y =$this->img_height*0.5;
  64. $txt_x =$this->img_width*0.2;
  65. //$txt_y =0;
  66. //$txt_x =0;
  67. $this->img_new=@@@ imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
  68. @unlink($this->img_text);
  69. @unlink($this->image );//刪除圖片
  70. switch($this->img_info[2]) {//取得背景圖片的格式
  71. case 1:imagegif($this->img_im,$this->image); ;
  72. case 2:imagejpeg($this->img_im,$this->image);break;
  73. case 3:imagepng($this->img_im,$this->image);break;
  74. break;
  75. break; default: exit('浮水印圖片失敗');
  76. }
  77. }
  78. //顯示圖片
  79. function img_show(){echo 'ueditor 圖片加浮水印';}
  80. //釋放內存
  81. private function img_nothing( ){
  82. unset($this->img_info);
  83. imagedestroy($this->img_im);
  84. }
}
?>
複製程式碼
  1. /**
  2. * 由 JetBrains PhpStorm 建立。
  3. * 使用者:taoqili
  4. * 日期:12-7-18
  5. * 時間:上午10:42
  6. */
  7. header("Content-Type: text/html; charset=utf-8");
  8. error_reporting(E_ERROR | E_WARNING);
  9. include "Uploader.class.php";
  10. //上傳圖片框中的描述表單名稱,
  11. $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
  12. $path = htmlspecialchars($_POST['dir'], ENT_QUOTES);
  13. //上傳設定
  14. $config = array(
  15. "savePath" //上傳設定
  16. $config = array(
  17. "savePath" = => path == "1" ? "upload/" : "upload1/"),
  18. "maxSize" => 1000, //單位KB
  19. "allowFiles" => array(".gif", ".png ", ".jpg", ".jpeg", ".bmp")
  20. );
  21. //產生上傳實例物件並完成上傳
  22. $up = new Uploader("upfile", $config);
  23. /**
  24. * 得到上傳檔案所對應的各個參數,陣列結構
  25. * array(
  26. * "originalName" => "", //原始檔案名稱
  27. * "name" => "", //新檔案名稱
  28. * "url" => "", //傳回的位址
  29. * "size" => "", //檔案大小
  30. * "type" => "" , //檔案類型
  31. * "state" => "" //上傳狀態,上傳成功時必須回傳"SUCCESS"
  32. * )
  33. */
  34. $info = $up->getFileInfo();
  35. /**
  36. * 向瀏覽器傳回資料json資料
  37. * {
  38. * 'url' :'a.jpg', //儲存後的檔案路徑
  39. * 'title' :'hello', / /檔案描述,對圖片來說在前端會加入到title屬性上
  40. * 'original' :'b.jpg', //原始檔名
  41. * 'state' :'SUCCESS' //上傳狀態,成功時返回SUCCESS,其他任何值將原樣返回至圖片上傳框
  42. * }
  43. */
  44. /* include "imgwater.php";
  45. $tpl=new image_fu;
  46. $tpl->img($info['url'],'http://www.zgxbzh.com/', 'simsun.ttc',30,0);*/
  47. echo "{'url':'" . $info["url"] . "','title':'" . $title . "','original':'" . $info["originalName"] . "','state':'" . $info["state"] . "'}";
複製程式碼


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:怎麼備份文件下一篇:怎麼備份文件