TinyMCE插件:Filemanager [4.x-6.x] 图片自动添加水印

上传图片程序(filemanager/upload.php)

if (!empty($_FILES) && $upload_files)有一个move_uploaded_file()函数,正是上传图片的源头方法,在他成功运行将图片成功上传后,再加入水印方法即可。

if (!empty($_FILES) && $upload_files) {
    ....

    move_uploaded_file($tempFile, $targetFile);

    //一定要在move_uploaded_file()之后添加水印,因为之前图片还没有上传
    //===========================水印图片.S
    $src_path = 'mark.png';
    $dst_path = $targetFile;
    //创建图片的实例
    $dst = imagecreatefromstring(file_get_contents($dst_path));
    $src = imagecreatefromstring(file_get_contents($src_path));
    //获取水印图片的宽高
    list($src_w, $src_h) = getimagesize($src_path);
    //获取要加水印图片的宽高
    list($dst_w, $dst_h) = getimagesize($dst_path);
    //将水印图片复制到目标图片上,最后个参数50是设置透明度,这里实现半透明效果
    //imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 50);
    //如果水印图片本身带透明色,则使用imagecopy方法
    imagecopy($dst, $src, ($dst_w - $src_w - 10), ($dst_h - $src_h - 10), 0, 0, $src_w, $src_h);
    //输出图片
    list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
    switch ($dst_type) {
        case 1://GIF
            header('Content-Type: image/gif');
            imagegif($dst, $dst_path);
            break;
        case 2://JPG
            header('Content-Type: image/jpeg');
            imagejpeg($dst, $dst_path, 100);
            break;
        case 3://PNG
            header('Content-Type: image/png');
            imagepng($dst, $dst_path, 100);
            break;
        default:
            break;
    }
    
    imagedestroy($dst);
    imagedestroy($src);
    //===========================水印图片.E

    ....
}

转载声明:本站文章无特别说明,皆为原创,版权所有,转载请注明:Dy大叔的日常

转载自 TinyMCE插件:Filemanager [4.x-6.x] 图片自动添加水印 | XDY.ME@Dy大叔的日常

我在vue2中通过tinymcetinymce-plugins 在plugins和toolbar中加入了importword 但是我的项目报错了 p is not a constructor TypeError: p is not a constructor at t (http://10.42.47.126:8080/tinymce/plugins/importword/plugin.min.js:751:178) at u (http://10.42.47.126:8080/tinymce/plugins/importword/plugin.min.js:752:145) at Object.onAction (http://10.42.47.126:8080/tinymce/plugins/importword/plugin.min.js:754:104) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:382090) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:255327) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:382010) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:51547) at each$1 (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:4119) at run (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:51509) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:64592) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:1678) at eval (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:313855) at Optional.fold (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:2068) at doTriggerHandler (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:313676) at doTriggerOnUntilStopped (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:314490) at triggerOnUntilStopped (webpack-internal:///./node_modules/_tinymce@6.6.0@tinymce/themes/silver/theme.js:3:315348) 这是什么原因
07-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值