百度编辑器ueditor给上传的图片加入水印
百度编辑器本身是没有为上传图片加入水印的功能,想要在上传的时候加入图片水印,也非常easy。以 ueditor 1.2.6 为例。打开php文件夹以下的imageUp.php文件,查找“$info = $up->getFileInfo();”,在这句代码的以下加入以下代码:
/* 加入水印 start */
$water_img = "watermark.png";
//水印文件(替这里换成你要的水印)
$img_min_w = 350;
//加入水印须要图片最小达到的宽度(px),小于这个宽度时则不加入水印
$img_min_h = 60;
//加入水印须要图片最小达到的高度(px)
$new_img = $ori_img = $info["url"];
$original = getimagesize($ori_img);
//得到图片的信息。能够print_r($original)发现它就是一个数组
if($original[0]>$img_min_w&&$original[1]>$img_min_h){
//当图片宽度大于300px才加入水印
$watermark = getimagesize($water_img);
$s_original = imgCreateFrom($ori_img, $original[2]);
//$original[2]是图片类型,当中1表示gif、2表示jpg、3表示png
$s_watermark = imgCreateFrom($water_img, $watermark[2]);
$posX = $original[0] - $watermark[0]-6;
//X坐标(右下角)
$poxY = $original[1] - $watermark[1]-3;
//Y坐标(右下角)
//打水印
imagecopy($s_original, $s_watermark, $posX, $poxY, 0, 0, $watermark[0], $watermark[1]);
imagejpeg($s_original, $new_img);
//生成新的图片
}
//依据文件类型 创建一个新图象
function imgCreateFrom($img_src, $val){
switch($val){
case 1 : $img = imagecreatefromgif($img_src);
break;
case 2 : $img = imagecreatefromjpeg($img_src);
break;
case 3 : $img = imagecreatefrompng($img_src);
break;
}
return $img;
}
/* 加入水印 end */
然后保存,就能够了。只是要注意的是:$water_img = "watermark.png";//水印文件(替这里换成你要的水印)。
也能够加文字水印
$text1 = '中文11';
//echo $text1;
//$text1 = iconv("GB2312","UTF-8//IGNORE",$text1); //防止中文乱码
//echo 'after'.$text1;
$size = 20; //文字大小
$font = $_SERVER['DOCUMENT_ROOT']."/themes/Static/images/simfang.ttf"; //字体
$angle = 0; //旋转角度,逆时针
$wmtext->GetWpText($text1);
$wmtext->GetFtSize($size);
$wmtext->GetFtType($font);
$wmtext->GetTtAngle($angle);
$wmtext->AddWpText($info["url"]);// 给图片加入文字水印*/
class WaterMark
{
//类開始
public $text, $color, $size, $font, $angle, $px, $py, $im;
//要加入的文字
public function GetWpText($text)
{
$this->text = $text;
}
//加入文字的颜色
public function GetFtColor($color)
{
$this->color = $color;
}
//加入文字的字体
public function GetFtType($font)
{
$this->font = $font;
}
//加入文字的大小
public function GetFtSize($size)
{
$this->size = $size;
}
//文字旋转的角度
public function GetTtAngle($angle)
{
$this->angle = $angle;
}
//加入文字的位置
public function GetTtPosit()
{
//echo 'here'.strlen($this->text);
$this->px = imagesx($this->im) - strlen($this->text)*10;
$this->py = imagesy($this->im) - 20;
}
static function getImageInfo($img) {
$imageInfo = getimagesize($img);
if ($imageInfo !== false) {
$imageType = strtolower(substr(image_type_to_extension($imageInfo[2]), 1));
$imageSize = filesize($img);
$info = array(
"width" => $imageInfo[0],
"height" => $imageInfo[1],
"type" => $imageType,
"size" => $imageSize,
"mime" => $imageInfo['mime']
);
return $info;
} else {
return false;
}
}
//加入文字水印
public function AddWpText($pict)
{
//$ext = exif_imagetype($pict);
$sInfo = self::getImageInfo($pict);
switch ($sInfo['type']) {
case 1:
$picext = "gif";
$this->im = imagecreatefromgif($pict);
break;
case "jpeg":
$picext = "jpeg";
$this->im = imagecreatefromjpeg($pict);
break;
case 3:
$picext = "png";
$this->im = imagecreatefrompng($pict);
break;
default:
$this->Errmsg("不支持的文件格式。");
break;
}
//$this->picext = $picext;
$this->GetTtPosit();
$im = $this->im;
$size = $this->size;
$angle= $this->angle;
$px = $this->px;
$py = $this->py;
$color= $this->color;
$font = $this->font;
$text = $this->text;
$color= imagecolorallocate($im, 255, 0, 0);
//echo $picext.$im.'==='.$pict;
//echo $size.' '.$angle.' '.px.' '.$py.' '.$color.' '.$font.' '.$text.'end';
imagettftext($im, $size, $angle, $px, $py, $color, $font, $text);
switch ($picext) {
case "gif":
imagegif($im, $pict);
break;
case "jpeg":
imagejpeg($im, $pict, 100);
break;
case "png":
imagealphablending($im, false);
imagesavealpha($im, true);
imagepng($im, $pict);
break;
}
imagedestroy($im);
}
//错误信息提示
public function Errmsg($msg)
{
echo "<script language='javascript'>alert('".$msg."');</script>";
}
//类结束
}
百度编辑器ueditor给上传的图片加入水印的更多相关文章
- thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印
今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...
- SouthidcEditor编辑器如何支持上传png图片
SouthidcEditor编辑器如何支持上传png图片? asp网站一般都是用的南方数据SouthidcEditor编辑器,可是这个编辑器上传图片功能不能上传png类型的图片,那怎么办?我(红蜘蛛网 ...
- 【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程
说在前面 工作中会遇到很多需要使用富文本编辑器的地方,比如我现在发布这篇文章离不开这个神器,而且现在网上编辑器太多了.记得之前,由于工作需要自己封装过一个编辑器的公共插件,是用ckeditor改版的, ...
- ueditor批量上传word图片
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM ...
- 百度编辑器ueditor批量上传图片或者批量上传文件时,文件名称和内容不符合,错位问题
百度编辑器ueditor批量上传附件时,上传后的文件和实际文件名称错误,比如实际是文件名“dongcoder.xls”,上传后可能就成了“懂客.xls”.原因就是,上传文件时是异步上传,同时进行,导致 ...
- .net mvc4 利用 kindeditor 上传本地图片
http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ...
- 解决:百度编辑器UEditor,怎么将图片保存到图片服务器,或者上传到ftp服务器的问题(如果你正在用UE,这篇文章值得你看下)
在使用百度编辑器ueditor的时候,怎么将图片保存到另一个服务器,或者上传到ftp服务器?这个问题,估计很多使用UE的人会遇到.而且我百度过,没有找到这个问题的解决方案.那么:本篇文章就很适合你了. ...
- asp.net 百度编辑器 UEditor 上传图片 图片上传配置 编辑器配置 网络连接错误,请检查配置后重试
1.配置ueditor/editor_config.js文件,将 //图片上传配置区 ,imageUrl:URL+"net/imageUp.ashx" //图片上传提交地址 ,im ...
- dedecmsV5.7 百度编辑器ueditor 多图上传 在线管理 排序问题
问题:dedecms后台百度编辑器ueditor的多图上传-在线管理的图片排序有问题,想把这个顺序调成按照文件修改时间倒序来展示 解决方法: 1.打开/include/ueditor/php/acit ...
随机推荐
- laravel 只有/login路由403,如何解决
链接/login自动转跳到/login/导致找不到 /public/login/ 目录导致403; 将路由中\login改为\login1访问正常,但login依然403,而不是未找到路由 链接/lo ...
- 防止asp.net连续点击按钮重复提交
1.在Page_Load中添加如下代码: protected void Page_Load(object sender, EventArgs e) { this.btnEdit.Attributes[ ...
- js【table】合并行,合并列
eg: function hbh() { var tab = document.getElementById("tableID"); var maxCol = 2, val, co ...
- PyCharm 自动添加作者及时间
打开pycharm,快捷键ctrl + alt + s 打开模板设置自己所需内容 完整打开路径:file>settings>editor>code style>file and ...
- Dijkstra+set堆优化局部模板
这是某天2018-10-25写的某题(P1613-luogu)的局部代码,目的是方便自己记忆一些细节,所以这里不过多赘述算法原理或题目 邻接矩阵mapp表示有向图 struct ELE { int i ...
- 2018湖南省第14届大学生计算机程序设计竞赛 C: 时间旅行
Description 假设 Bobo 位于时间轴(数轴)上 t0 点,他要使用时间机器回到区间 (0, h] 中. 当 Bobo 位于时间轴上 t 点,同时时间机器有 c 单位燃料时,他可以选择一个 ...
- elementui 后台管理系统遇到的问题(二) 树形控件 el-tree
elementui中树形控件的使用 一.将后台返回的数据填充到前端控件中,需要注意的几点问题 (1).el-tree中需要绑定node-key='自定义的id名称' (2).在配置data中defau ...
- VSCODE插件开发:用户输入输出
阅读这篇文章之前,假设你已经具有开发helloworld的插件的能力. vscode.window 简介 vscode.window 负责当前激活窗口的输入输出,比如展示信息,和用户输入等功能都是用v ...
- 零基础入门学习Python(9)--了不起的分支和循环3
前言 本节继续介绍分支和循环 知识点 while循环 Python while循环与if条件分支有点类似,在条件为真的情况下,执行某一段指定的代码.不同的是只要条件为True,while循环就会一直重 ...
- selenium实战演练
利用selenium以及pyquery,爬取当当网图书信息,并且将数据存入文件以及MongoDB数据库中. 配置文件: key="python" MONGO_URL='localh ...