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

发布于 2017-08-21 09:04:36 | 119 次阅读 | 评论: 0 | 来源: 网友投递

PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。

这篇文章主要为大家详细介绍了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);

}

/* 水印配置结束 */

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHPERZ。

相关阅读:

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

php实现图片上传时添加文字和图片水印技巧

php实现多张图片上传加水印功能示例

php+js实现异步图片上传实例

PHP图片上传代码示例讲解

PHP使用 swfupload图片上传的实例代码

PHP支持多种格式图片上传示例(支持jpg、png、gif)

PHP 图片上传代码示例

php图片上传,并可以预览功能实现示例

PHP 图片上传示例代码

php 图片上传类代码

PHP图片上传简单示例

kindeditor 上传图片 php,Kindeditor编辑器添加图片上传水印功能(php代码)相关推荐

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

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

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

    首先简单介绍一下kindeditor编辑器: KindEditor 是一套开源的在线HTML编辑器,开发人员可以用 KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本 ...

  3. ckeidtor编辑器添加图片上传功能

    1.ckeditor默认没有上传图片功能,只能通过Url显示图片,图下图 2.首先说明,ckeditor是有上传功能的,只是隐藏了,需要通过配置让它显示 找到ckeditor/plugins/imag ...

  4. php 上传图片并生成缩略图,php 图片上传并生成缩略图代码

    本代码的功能是把你要上传的图片保存到服务器,然后再把当前图重按比例生成一个小的缩略图哦. if($_FILES['image']['size']){ if($_FILES['image']['type ...

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

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

  6. springboot 整合文本编辑器(图片上传)

    Ueditor 文件上传配置: ueditor.config.js serverUrl:填写自己的路径 jsp->config.json: imageActionName:填写自己写的文件上传的 ...

  7. mavon-editor编辑器与图片上传

    mavon-editor编辑器与图片上传 图片上传是一个常用的功能,今天我们来实现基于Vue的Markdown编辑器--mavon-editor的图片上传功能. 一.安装与引入 1. 首先在命令行安装 ...

  8. Ueditor富文本编辑器修改图片上传路径

    Ueditor富文本编辑器修改图片上传路径 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QZPHP_L 由于网站后台使用Zend framewor ...

  9. vue3中使用vue-quill富文本编辑器 重写图片上传功能

    最近开发的一个vue3+element-plus的项目,需要用到富文本编辑器,最终选择了VueQuill这一款轻便型的富文本编辑器. 说说遇到的问题:富文本编辑器的图片上传,默认是直接以base64图 ...

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

    php视频拍照上传头像功能实现代码分享 发布于 2016-01-19 07:47:53 | 121 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext ...

最新文章

  1. 整数返回poj1005——I Think I Need a Houseboat
  2. hive sqoop导出 postgresql精度丢失_Mysql 与 hadoop 数据同步(迁移),你需要知道 Sqoop...
  3. ThinkPHP6项目基操(7.模型)
  4. 多线程基础:两种常见的创建线程的方式
  5. Docker学习总结(33)——Docker环境下搭建 MySQL 主从复制
  6. 湖北警方打掉一制贩假酒团伙 涉案金额1.6亿元
  7. 二分(POJ - 3273 )
  8. php中json_encode中文编码问题(转)
  9. mui+vue文件上传(图片)
  10. 软考高级 真题 2009年下半年 信息系统项目管理师 论文
  11. PHP 获取微视无水印源地址_小红书无水印视频解析下载|小红书在线去水印|小红书视频解析API接口...
  12. matlab傅里叶反变换举例,matlab傅里叶正逆变换详细说明+图例
  13. ANC主动降噪理论及Matlab代码实现
  14. TCP Congestion性能测试分析
  15. rust启动错误ple_Rust 错误处理
  16. 致诸弟·明师益友虚心请教
  17. python代码使用cython进行加密
  18. HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
  19. 删除指定位置的元素(数组)
  20. VMware虚拟机解决空间不足,增加磁盘空间(磁盘扩容)

热门文章

  1. YUV格式讲解并使用ffmpeg生产YUV文件
  2. 最新易商支付源码/代付系统PHP源码+功能超级强大
  3. phpstudy、Apache安装DVWA教程
  4. 神经动力学模型的建立
  5. linux下caffe安装过程原理,caffe安装过程详解linux版本
  6. Caffe安装 (OPENCV4 Cuda10.2 Xavier)
  7. c语言输入的代码格式错误的是什么意思,详解输入输出格式(C语言代码)
  8. 凯撒密码的超详细讲解
  9. mysql数据库客户端--navicat for mysql 12中文破解版64位/32位 v12.0.29
  10. 小程序获取视频缩略图