###### ueditor上传图片加水印,ueditor1.4.3 水印,ueditor1.4.3 图片水印,ueditor 1.4.3上传图片添加水印,ueditor图片水印控制
打开UEditor压缩包下php目录中的上传类文件:Uploader.class.php
在上传文件的主要方法下添加调用水印处理方法:
```php
/**
* 上传文件的主处理方法
* @return mixed
*/
private function upFile()
{
……………………
……………………
$this->stateInfo = $this->stateMap[0]; //(大概在122行)
//在下面加入如下调用水印的处理方法:
$this->imageWaterMark($this->filePath,9,'../img/watermark.png'); //注释见本文下面imageWaterMark()函数方法
……………………
欢迎来访未来往事}
```
###### 水印处理方法/函数:
```php
/**
* 功能:PHP图片水印 (水印支持图片或文字)
* 参数:
* $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式;
* $waterPos水印位置,有10种状态,0为随机位置;
* 1为顶端居左,2为顶端居中,3为顶端居右;
* 4为中部居左,5为中部居中,6为中部居右;
* 7为底端居左,8为底端居中,9为底端居右;
* $waterImage图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式;
* $waterText文字水印,即把文字作为为水印,支持ASCII码,不支持中文;
* $textFont文字大小,值为1、2、3、4或5,默认为5;
* $textColor文字颜色,值为十六进制颜色值,默认为#FF0000(红色);
*
* 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG
* $waterImage 和 $waterText 最好不要同时使用,选其中之一即可,优先使用 $waterImage。
* 当$waterImage有效时,参数$waterString、$stringFont、$stringColor均不生效。
* 加水印后的图片的文件名和 $groundImage 一样。
* Author: 未来往事*/
private function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000")
{
$isWaterImage = FALSE;
$formatMsg = "暂不支持该文件格式,请用图片处理软件将图片转换为GIF、JPG、PNG格式。";
//读取水印文件
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
{
die("需要加水印的图片不存在!");
}
//水印位置
if($isWaterImage)//图片水印
{
$w = $water_w;
$h = $water_h;
$label = "图片的";
}
else//文字水印
{
$temp = imagettfbbox(ceil($textFont*5),0,"./cour.ttf",$waterText);//取得使用 TrueType 字体的文本的范围
$w = $temp[2] - $temp[6];
$h = $temp[3] - $temp[7];
unset($temp);
$label = "文字区域";
}
if( ($ground_w
```
###### 基于上述方法,你也可以在多图上传中添加相关选项让用户自定义选择水印添加的位置。
###### A simple example:
![](/usr/uploads//06/1465377411_1198b056.jpg)
(1)使用UEditor编辑器的serverparam参数,参数作用:自定义请求参数
视图中添加允许用户自主选择是否添加水印的checkbox,代码:
```html
水印 (提示:每次上传前可选择是否使用水印)
```
视图中添加如下代码追加向后台发出请求时添加wm参数:
```javascript
ue.ready(function() { //页面初始化完成默认为加水印状态
UE.getEditor('editor').execCommand('serverparam', 'wm', 1);
});
function cancelwm(t){
if(t.checked){
UE.getEditor('editor').execCommand('serverparam', 'wm', 1);
}else{
UE.getEditor('editor').execCommand('serverparam', 'wm', 0);
}
}
欢迎来访未来往事```
(2)action_upload.php附件上传控制代码文件中获取wm参数并初始化上传类:
```php
/*
* 判断是否添加水印
*/
$wm = $_GET['wm'];
$up = new Uploader($fieldName, $config, $base64,$wm);
```
(3)Uploader.class.php类文件中处理是否添加水印,过程代码略。
最后更新于-06-27 13:57:22并被添加「ueditor 富文本编辑器」标签,已有 2927 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章