Heim >Backend-Entwicklung >PHP-Tutorial >ueditor 图片加水印

ueditor 图片加水印

WBOY
WBOYOriginal
2016-07-25 08:49:331300Durchsuche
  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_ttf='';
  20. private $img_new;
  21. private $img_text_size;
  22. private $img_jd;
  23. function img($img='',$txt='',$ttf='',$size=12,$jiaodu=0){
  24. if(isset($img)&&file_exists($img)){//检测图片是否存在
  25. $this->image =$img;
  26. $this->img_text=$txt;
  27. $this->img_text_size=$size;
  28. $this->img_jd=$jiaodu;
  29. if(file_exists($ttf)){
  30. $this->img_ttf=$ttf;
  31. }else{
  32. exit('字体文件:'.$ttf.'不存在!');
  33. }
  34. $this->imgyesno();
  35. }else{
  36. exit('图片文件:'.$img.'不存在');
  37. }
  38. }
  39. private function imgyesno(){
  40. $this->img_info =getimagesize($this->image);
  41. $this->img_width =$this->img_info[0];//图片宽
  42. $this->img_height=$this->img_info[1];//图片高
  43. //检测图片类型
  44. switch($this->img_info[2]){
  45. case 1:$this->img_im = imagecreatefromgif($this->image);break;
  46. case 2:$this->img_im = imagecreatefromjpeg($this->image);break;
  47. case 3:$this->img_im = imagecreatefrompng($this->image);break;
  48. default:exit('图片格式不支持水印');
  49. }
  50. $this->img_text();
  51. }
  52. private function img_text(){
  53. imagealphablending($this->img_im,true);
  54. //设定颜色
  55. $color=imagecolorallocate($this->img_im,255,255,255);
  56. $txt_height=$this->img_text_size;
  57. $txt_jiaodu=$this->img_jd;
  58. $ttf_im=imagettfbbox($txt_height,$txt_jiaodu,$this->img_ttf,$this->img_text);
  59. $w = $ttf_im[2] - $ttf_im[6];
  60. $h = $ttf_im[3] - $ttf_im[7];
  61. //$w = $ttf_im[7];
  62. //$h = $ttf_im[8];
  63. unset($ttf_im);
  64. $txt_y =$this->img_height*0.5;
  65. $txt_x =$this->img_width*0.2;
  66. //$txt_y =0;
  67. //$txt_x =0;
  68. $this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
  69. @unlink($this->image);//删除图片
  70. switch($this->img_info[2]) {//取得背景图片的格式
  71. case 1:imagegif($this->img_im,$this->image);break;
  72. case 2:imagejpeg($this->img_im,$this->image);break;
  73. case 3:imagepng($this->img_im,$this->image);break;
  74. default: exit('水印图片失败');
  75. }
  76. }
  77. //显示图片
  78. function img_show(){echo ''.$this->img_text.'';}
  79. //释放内存
  80. private function img_nothing(){
  81. unset($this->img_info);
  82. imagedestroy($this->img_im);
  83. }
  84. }
  85. ?>
复制代码
  1. /**
  2. * Created by JetBrains PhpStorm.
  3. * User: taoqili
  4. * Date: 12-7-18
  5. * Time: 上午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" => ($path == "1" ? "upload/" : "upload1/"),
  16. "maxSize" => 1000, //单位KB
  17. "allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp")
  18. );
  19. //生成上传实例对象并完成上传
  20. $up = new Uploader("upfile", $config);
  21. /**
  22. * 得到上传文件所对应的各个参数,数组结构
  23. * array(
  24. * "originalName" => "", //原始文件名
  25. * "name" => "", //新文件名
  26. * "url" => "", //返回的地址
  27. * "size" => "", //文件大小
  28. * "type" => "" , //文件类型
  29. * "state" => "" //上传状态,上传成功时必须返回"SUCCESS"
  30. * )
  31. */
  32. $info = $up->getFileInfo();
  33. /**
  34. * 向浏览器返回数据json数据
  35. * {
  36. * 'url' :'a.jpg', //保存后的文件路径
  37. * 'title' :'hello', //文件描述,对图片来说在前端会添加到title属性上
  38. * 'original' :'b.jpg', //原始文件名
  39. * 'state' :'SUCCESS' //上传状态,成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
  40. * }
  41. */
  42. /* include "imgwater.php";
  43. $tpl=new image_fu;
  44. $tpl->img($info['url'],'http://www.zgxbzh.com/','simsun.ttc',30,0);*/
  45. echo "{'url':'" . $info["url"] . "','title':'" . $title . "','original':'" . $info["originalName"] . "','state':'" . $info["state"] . "'}";
复制代码


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:怎么备份文件 Nächster Artikel:文件自动备份软件