首先简单介绍一下kindeditor编辑器:

KindEditor 是一套开源的在线HTML编辑器,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

主要特点:快速:体积小,加载速度快

开源:开放源代码,高水平,高品质

底层:内置自定义 DOM 类库,精确操作 DOM

扩展:基于插件的设计,所有功能都是插件,可根据需求增减功能

风格:修改编辑器风格非常容易,只需修改一个 CSS 文件

兼容:支持大部分主流浏览器,比如 IE、Firefox、Safari、Chrome、Opera

转到正题,默认的编辑器上传图片时,是没有水印功能的,下面详细介绍:

第一步:修改upload_json.php文件

在编辑器的/php/目录下可以找到这个文件,新增一个函数:/*

* 功能:PHP图片水印,水印支持图片或文字

* 参数:

* $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式;

* $waterPos 水印位置,有10种状态,0为随机位置;

*   1为顶端居左,2为顶端居中,3为顶端居右;

*   4为中部居左,5为中部居中,6为中部居右;

*   7为底端居左,8为底端居中,9为底端居右;

* $waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式;

* $alpha 水印透明度,取值1-100;

* $waterText 文字水印,即把文字作为为水印,支持ASCII码,不支持中文;

* $textFont 文字大小,值为1、2、3、4或5,默认为5;

* $textColor 文字颜色,值为十六进制颜色值,默认为#FF0000(红色);

*

* $waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。

* 当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。

* 加水印后的图片的文件名和 $groundImage 一样。

*/

function imageWaterMark($groundImage, $waterPos=0, $waterImage='', $alpha=80, $waterText='', $water_fontfile, $textFont=9, $textColor='#FF0000'){

$isWaterImage = FALSE;

$formatMsg = '不支持该图片格式!请使用GIF、JPG、PNG格式的图片。';

$fontFile = $water_fontfile;

//读取水印文件

if(!empty($waterImage) && file_exists($waterImage)){

$isWaterImage = TRUE;

$water_info = getimagesize($waterImage);

$water_w = $water_info[0];//取得水印图片的宽

$water_h = $water_info[1];//取得水印图片的高

switch($water_info[2]){//取得水印图片的格式

case 1:$water_im = imagecreatefromgif($waterImage);break;

case 2:$water_im = imagecreatefromjpeg($waterImage);break;

case 3:$water_im = imagecreatefrompng($waterImage);break;

default:die($formatMsg);

}

}

//读取背景图片

if(!empty($groundImage) && file_exists($groundImage)){

$ground_info = getimagesize($groundImage);

$ground_w = $ground_info[0];//取得背景图片的宽

$ground_h = $ground_info[1];//取得背景图片的高

switch($ground_info[2]){//取得背景图片的格式

case 1:$ground_im = imagecreatefromgif($groundImage);break;

case 2:$ground_im = imagecreatefromjpeg($groundImage);break;

case 3:$ground_im = imagecreatefrompng($groundImage);break;

default:die($formatMsg);

}

}else{

alert("水印图片不存在!");

}

//水印位置

if($isWaterImage){//图片水印

$w = $water_w;

$h = $water_h;

$label = "图片的";

}else{//文字水印

$temp = imagettfbbox($textFont, 0, $fontFile, $waterText);//取得使用 TrueType 字体的文本的范围

$w = $temp[2] - $temp[6];

$h = $temp[3] - $temp[7];

unset($temp);

$label = "文字区域";

}

if(($ground_w

echo "需要加水印的图片的长度或宽度比水印".$label."还小,无法生成水印!";

return;

}

switch($waterPos){

case 0://随机

$posX = rand(0,($ground_w - $w));

$posY = rand(0,($ground_h - $h));

break;

case 1://1为顶端居左

$posX = 0;

$posY = 0;

break;

case 2://2为顶端居中

$posX = ($ground_w - $w) / 2;

$posY = 0;

break;

case 3://3为顶端居右

$posX = $ground_w - $w;

$posY = 0;

break;

case 4://4为中部居左

$posX = 0;

$posY = ($ground_h - $h) / 2;

break;

case 5://5为中部居中

$posX = ($ground_w - $w) / 2;

$posY = ($ground_h - $h) / 2;

break;

case 6://6为中部居右

$posX = $ground_w - $w;

$posY = ($ground_h - $h) / 2;

break;

case 7://7为底端居左

$posX = 0;

$posY = $ground_h - $h;

break;

case 8://8为底端居中

$posX = ($ground_w - $w) / 2;

$posY = $ground_h - $h;

break;

case 9://9为底端居右

$posX = $ground_w - $w;

$posY = $ground_h - $h;

if(!$isWaterImage){

$posY = $ground_h - $h-20;

}

break;

default://随机

$posX = rand(0,($ground_w - $w));

$posY = rand(0,($ground_h - $h));

break;

}

//设定图像的混色模式

imagealphablending($ground_im, true);

if($isWaterImage){//图片水印

//imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷贝水印到目标文件

//生成混合图像

imagecopymerge($ground_im, $water_im, $posX, $posY, 0, 0, $water_w, $water_h, $alpha);

} else {//文字水印

if( !empty($textColor) && (strlen($textColor)==7)){

$R = hexdec(substr($textColor,1,2));

$G = hexdec(substr($textColor,3,2));

$B = hexdec(substr($textColor,5));

} else {

die("水印文字颜色格式不正确!");

}

imagestring($ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));

}

//生成水印后的图片

@unlink($groundImage);

switch($ground_info[2]){//取得背景图片的格式

case 1:imagegif($ground_im,$groundImage);break;

case 2:imagejpeg($ground_im,$groundImage,100);break;//注意这里的100,经测试,100是图片质量最佳的,但文件大小会增加很多,95的时候质量还不错,大小和原来的差不多。作者采用95的值。

case 3:imagepng($ground_im,$groundImage);break;

default:die($errorMsg);

}

//释放内存

if(isset($water_info)) unset($water_info);

if(isset($water_im)) imagedestroy($water_im);

unset($ground_info);

imagedestroy($ground_im);

}

第二步:找到$json = new Services_JSON();注意有两个地方,不是在alert函数里的那个,添加如下代码:/* 水印配置开始 */

$water_mark = 1;//1为加水印, 其它为不加

$water_pos = 9;//水印位置,10种状态【0为随机,1为顶端居左,2为顶端居中,3为顶端居右;4为中部居左,5为中部居中,6为中部居右;7为底端居左,8为底端居中,9为底端居】

$water_img = $_SERVER['DOCUMENT_ROOT'].'/upfiles/water.gif';//水印图片,默认填写空,请将图片上传至网站根目录的upfiles下,例: water.gif

$water_alpha = 50;//水印透明度

$water_text = '';//水印字符串,默认填写空;

//$water_fontfile = $_SERVER['DOCUMENT_ROOT'] .'/upfiles/fonts/arial.ttf';//文字水印使用的字体;

if($water_mark == 1){

imageWaterMark($file_path, $water_pos, $water_img, $water_alpha, $water_text, $water_fontfile);

}

/* 水印配置结束 */

经本人测试可以正常使用,另外一点请注意水印图片的路径,根据实际情况而定。

php网页添加图片的代码,天天查询-PHP版的kindeditor编辑器加图片上传水印功能相关推荐

  1. kindeditor上传图片php,Kindeditor编辑器添加图片上传水印功能(php代码)

    KindEditor 是一套开源的在线HTML编辑器,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框.可以无缝地与 Java..NET.PH ...

  2. kindeditor编辑器和图片上传独立分开的配置细节

    关于kindeditor编辑器上传按钮的异步加载最关键的部署问题,它的上传图片的组件都已经封装得很好了的,只需要监听到页面按钮的点击事件给编辑器对象传递一些对应的初始化参数即可显示图片上传的弹窗实现异 ...

  3. react-cropper + antdesign +dva 实现裁剪图片并上传的功能

    react-cropper + antdesign +dva 实现裁剪图片并上传的功能 一.首先安装react-cropper插件 npm install --save react-cropper 执 ...

  4. edui 富文本编辑_富文本编辑器wangEditor添加本地上传视频功能

    最近做一个考试系统,编辑题目要用到富文本编辑,要求可以添加图片.视频和pdf.此前项目中用的都是wangEditor,使用的时候发现只可以上传本地图片,视频只能添加链接,找了其他插件,也没发现比较好用 ...

  5. wangeditor 请求头_wangEditor编辑器添加上传视频功能

    正在帮一个朋友的项目进行一些修改,该项目中使用的是 wangEditor 富文本编辑器. 该编辑器的上传视频有个缺陷,不能手动上传,这是目前的效果图 朋友要求加一个上传视频的功能. 网上的解决方案的文 ...

  6. php拍视频上传,php视频拍照上传头像功能实现代码分享

    现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,既不是post传递也不是get函数传递,这个另外一种数据 如果要在php中实现视频拍照我们需要借助于 ...

  7. ssm框架验证码图片加载不出_基于SSM框架的文件图片上传/下载功能实现

    前一段时间很多做毕业设计的同学问:如何写图片和文件的上传下载功能,今天正好有时间,所以就做了一个案例,详细的讲解这个功能. 框架结构: 对于很多做过开发的而言,上传功能肯定都用过,而且用到的场景很多, ...

  8. dede图片上传php,织梦cms增加栏目(栏目图片)上传缩略图功能

    很早之前使用DedeCMS的时候,栏目设置里还有一个栏目图片的选项,后来DedeCMS更新到5.7版本之后,这个很实用的功能竟然没取消了,导致很多时候我们在用DedeCMS建站,处理栏目显示样式这一块 ...

  9. php更换wordpress用户头像,WordPress如何添加用户自定义上传头像功能

    使用WordPress建站的朋友应该知道,WordPress本身是没有上传自定义头像功能的,如果要更换头像,步骤是非常麻烦的. 而在我们开发一款WordPress主题中,特别是多用户的主题,让注册用户 ...

最新文章

  1. 邵阳一中2021高考成绩查询入口,邵阳高考成绩查询系统
  2. 科普:目标检测Anchor是什么?怎么科学设置?[附代码]
  3. 【Java文件操作(三)】递归复制文件夹内所有文件
  4. 软件项目组织管理(九)项目人力资源管理
  5. mac 启动mysql多实例_实践:mysql单机多实例部署(mac)
  6. 高温津贴:关键是消除劳动者“权利贫困”
  7. 电脑硬件知识学习_电脑故障小知识自己动手不再花冤枉钱
  8. netty 发送 http请求
  9. mqtt c语言 单片机,MQTT--单片机实现即时通讯
  10. HTML5 footer元素
  11. Weka开发[11]—J48源代码介绍
  12. Aibaba Dubbo 的前世今生以及黑历史 主程序员梁飞 阿里P9(2016年查看)
  13. JAVA前后端分离maven项目打包上线部署具体步骤教程
  14. Python文本处理,依次读取文本每一行,查找每一行特定位置的元素,生成列表,去重
  15. java信息管理系统开题报告_开题报告-基于Java的学生信息管理系统设计.doc
  16. win10任务栏假死问题
  17. 猜拳java,猜拳小游戏(Java代码实现)
  18. android椭圆形形框_什么是计算机硬件上的椭圆形Kong?
  19. 简单易懂的计算机网络相关名词的解释--集线器篇(持续更新)
  20. 成功的条件:高人指点、贵人相助、小人监督、个人奋斗

热门文章

  1. C#中struct和class的使用区别是什么?
  2. 混合和可扩展的纠错算法,用于长读的插入缺失和替换错误
  3. 第四代测序(纳米孔测序)有望全面代替边合成边测序吗?
  4. GATB=The Genome Analysis Toolbox with de-Bruijn graph 带有de-Bruijn图的基因组分析工具箱
  5. 嵌入式开发有年龄限制吗_2021年考监理工程师有年龄限制吗?女生可以考监理工程师吗?...
  6. java中飞飞检查异常_Java复习6异常处理
  7. python asyncio 使用方法
  8. opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。
  9. android fadingedge,Android:从滚动条中仅删除底部的FadingEdge效果
  10. 企业dns服务器搭建