Heim Web-Frontend HTML-Tutorial 为百度UEDITOR编辑器上传图片添加水印_html/css_WEB-ITnose

为百度UEDITOR编辑器上传图片添加水印_html/css_WEB-ITnose

Jun 24, 2016 am 11:46 AM


为百度UEDITOR编辑器上传图片添加水印_html/css_WEB-ITnose

form:http://www.uphtm.com/php/255.html

UEDITOR编辑器上传图片是自动提取的,但是图片没有水印功能,下面小编和各位一起来看看。

UEditor编辑器没有上传图片加水印的功能,需要进行二次开发,本例是在PHPCMS系统中对百度编辑器进行二次开发,添加上传图片加水印功能。


首先打开UEditor编辑器文件目录的php文件夹,打开Uploader.class.php,把PHPCMS添加水印的方法复制过来,加到这个类所有成员方法最后面,然后进行修改如下:

//图片加水印
public function watermark($source, $target = '', $w_pos = '', $w_img = '', $w_text = '99danji',$w_font = 8, 
$w_color = '#ff0000') {
    $this->w_img = 'watermark.png';
    $this->w_pos = 9;
    $this->w_minwidth = 400;
    $this->w_minheight = 200;
    $this->w_quality = 80;
    $this->w_pct = 85;
 
    $w_pos = $w_pos ? $w_pos : $this->w_pos;
    $w_img = $w_img ? $w_img : $this->w_img;
    //if(!$this->watermark_enable || !$this->check($source)) return false;
    if(!$target) $target = $source;
    //$w_img = PHPCMS_PATH.$w_img;
    //define('WWW_PATH', dirname(dirname(dirname(__FILE__)));
    $w_img = '../../../images/water/'.$w_img;
    $source_info = getimagesize($source);
    $source_w    = $source_info[0];
    $source_h    = $source_info[1];
    //if($source_w < $this->w_minwidth || $source_h < $this->w_minheight) return false;
    switch($source_info[2]) {
        case 1 :
            $source_img = imagecreatefromgif($source);
            break;
        case 2 :
            $source_img = imagecreatefromjpeg($source);
            break;
        case 3 :
            $source_img = imagecreatefrompng($source);
            break;
        default :
            return false;
    }
    if(!empty($w_img) && file_exists($w_img)) {
        $ifwaterimage = 1;
        $water_info   = getimagesize($w_img);
        $width        = $water_info[0];
        $height       = $water_info[1];
        switch($water_info[2]) {
            case 1 :
                $water_img = imagecreatefromgif($w_img);
                break;
            case 2 :
                $water_img = imagecreatefromjpeg($w_img);
                break;
            case 3 :
                $water_img = imagecreatefrompng($w_img);
                break;
            default :
                return;
        }
    } else {       
        $ifwaterimage = 0;
        $temp = imagettfbbox(ceil($w_font*2.5), 0, PC_PATH.&#39;libs/data/font/elephant.ttf&#39;, $w_text);
        $width = $temp[2] - $temp[6];
        $height = $temp[3] - $temp[7];
        unset($temp);
    }
    switch($w_pos) {
        case 1:
            $wx = 5;
            $wy = 5;
            break;
        case 2:
            $wx = ($source_w - $width) / 2;
            $wy = 0;
            break;
        case 3:
            $wx = $source_w - $width;
            $wy = 0;
            break;
        case 4:
            $wx = 0;
            $wy = ($source_h - $height) / 2;
            break;
        case 5:
            $wx = ($source_w - $width) / 2;
            $wy = ($source_h - $height) / 2;
            break;
        case 6:
            $wx = $source_w - $width;
     $wy = ($source_h - $height) / 2;
            break;
        case 7:
            $wx = 0;
            $wy = $source_h - $height;
            break;
        case 8:
            $wx = ($source_w - $width) / 2;
            $wy = $source_h - $height;
            break;
        case 9:
            $wx = $source_w - $width;
            $wy = $source_h - $height;
            break;
        case 10:
            $wx = rand(0,($source_w - $width));
            $wy = rand(0,($source_h - $height));
            break;             
        default:
            $wx = rand(0,($source_w - $width));
            $wy = rand(0,($source_h - $height));
            break;
    }
    if($ifwaterimage) {
        if($water_info[2] == 3) {
            imagecopy($source_img, $water_img, $wx, $wy, 0, 0, $width, $height);
        } else {
            imagecopymerge($source_img, $water_img, $wx, $wy, 0, 0, $width, $height, $this->w_pct);
        }
    } else {
        if(!empty($w_color) && (strlen($w_color)==7)) {
            $r = hexdec(substr($w_color,1,2));
            $g = hexdec(substr($w_color,3,2));
            $b = hexdec(substr($w_color,5));
        } else {
            return;
        }
        imagestring($source_img,$w_font,$wx,$wy,$w_text,imagecolorallocate($source_img,$r,$g,$b));
    }
   
    switch($source_info[2]) {
        case 1 :
            imagegif($source_img, $target);
            break;
        case 2 :
            imagejpeg($source_img, $target, $this->w_quality);
            break;
        case 3 :
            imagepng($source_img, $target);
            break;
        default :
            return;
    }
 
    if(isset($water_info)) {
        unset($water_info);
    }
    if(isset($water_img)) {
        imagedestroy($water_img);
    }
    unset($source_info);
    imagedestroy($source_img);
    return true;
}
 
public function check($image) {
    return extension_loaded(&#39;gd&#39;) && preg_match("//.(jpg|jpeg|gif|png)/i", $image, $m) && 
    file_exists($image) && function_exists(&#39;imagecreatefrom&#39;.($m[1] == &#39;jpg&#39; ? &#39;jpeg&#39; : $m[1]));
}
Nach dem Login kopieren

对比我修改的部分,由于phpcms水印可以在后台管理设置,phpcms自带的水印方法通过读取配置文件获取路径,和读取数据库设置获取参数设置,那么这些地方需要手动进行设置。

对了,在upFile方法还要添加一段函数:

if ($this->watermark) {
    $this->watermark($this->filePath,$this->filePath);
}
Nach dem Login kopieren

然后打开UEditor百度编辑器php目录下的action_upload.php文件,加上是否添加水印的参数:

  1. /* 上传配置 */
    $base64 = "upload";
    switch (htmlspecialchars($_GET[&#39;action&#39;])) {
        case &#39;uploadimage&#39;:
            $config = array(
                "pathFormat" => $CONFIG[&#39;imagePathFormat&#39;],
                "maxSize" => $CONFIG[&#39;imageMaxSize&#39;],
                "allowFiles" => $CONFIG[&#39;imageAllowFiles&#39;]
            );
            $fieldName = $CONFIG[&#39;imageFieldName&#39;];
            $watermark = true;
            break;
    Nach dem Login kopieren

然后在后面还有一句要改成:

  1. /* 生成上传实例对象并完成上传 */
    $up = new Uploader($fieldName, $config, $base64, $watermark);
    Nach dem Login kopieren

    这样就大功告成了,本文主要是提供思路和参考。

    form:http://www.uphtm.com/php/255.html


    以上就是为百度UEDITOR编辑器上传图片添加水印_html/css_WEB-ITnose的内容,更多相关内容请关注PHP中文网(www.php.cn)!







Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie behebe ich zu lange Dateinamen oder Erweiterungen in Windows 11? Wie behebe ich zu lange Dateinamen oder Erweiterungen in Windows 11? Apr 22, 2023 pm 04:37 PM

Hatten Sie schon einmal Probleme beim Übertragen von Dateien, die Sie daran gehindert haben? Nun, viele Windows-Benutzer haben kürzlich berichtet, dass beim Kopieren und Einfügen von Dateien in einen Ordner Probleme aufgetreten sind, bei denen die Fehlermeldung „Der Dateiname des Zielordners ist zu lang“ ausgegeben wurde. Darüber hinaus äußerten einige andere Windows-Benutzer ihre Frustration beim Öffnen einer Datei und sagten: „Der Dateiname oder die Erweiterung ist zu lang“ und sie konnten die Datei nicht öffnen. Dies enttäuscht die Benutzer, da ihnen nicht gestattet wird, Dateien in einen anderen Ordner zu übertragen. Bei der Analyse des Problems haben wir eine Reihe von Lösungen gefunden, die das Problem beheben und es Benutzern ermöglichen können, Dateien problemlos zu übertragen. Wenn Sie sich in einer ähnlichen Situation befinden, finden Sie in diesem Beitrag weitere Informationen. Quelle: https

Wie schalte ich den Windows Defender Smart Screen in Windows 11, 10 aus? Wie schalte ich den Windows Defender Smart Screen in Windows 11, 10 aus? Apr 26, 2023 am 11:46 AM

Viele Windows-Benutzer haben kürzlich berichtet, dass sie verärgert waren, als Windows Defender SmartScreen Benutzer davor warnte, Anwendungen zu starten, die von Microsoft Windows nicht erkannt wurden, und sie jedes Mal auf die Option „Trotzdem ausführen“ klicken mussten. Windows-Benutzer sind sich nicht sicher, was sie derzeit tun können, um dies zu vermeiden oder zu deaktivieren. Nach der Untersuchung des Problems haben wir festgestellt, dass die Windows Defender-Funktionalität auf dem System über die Anwendung „Einstellungen“, den Editor für lokale Gruppenrichtlinien oder durch Anpassen der Registrierungsdateien deaktiviert werden kann. Auf diese Weise müssen sich Benutzer nicht mehr mit dem Defender SmartScreen auseinandersetzen. Wenn Ihr System auch darauf stößt

Detaillierte Anleitung zu 15 Python-Editoren/IDEs, es gibt immer einen, der zu Ihnen passt! Detaillierte Anleitung zu 15 Python-Editoren/IDEs, es gibt immer einen, der zu Ihnen passt! Aug 09, 2023 pm 05:44 PM

Es gibt keinen besseren Weg, Python-Code zu schreiben, als eine integrierte Entwicklungsumgebung (IDE) zu verwenden. Sie können Ihre Arbeit nicht nur einfacher und logischer machen, sondern auch das Programmiererlebnis und die Effizienz verbessern. Das weiß jeder. Die Frage ist, wie man aus den vielen Optionen die beste Python-Entwicklungsumgebung auswählt.

Unverzichtbare Software für die C-Sprachprogrammierung: Fünf gute Helfer, die Einsteigern empfohlen werden Unverzichtbare Software für die C-Sprachprogrammierung: Fünf gute Helfer, die Einsteigern empfohlen werden Feb 20, 2024 pm 08:18 PM

Die Sprache C ist eine grundlegende und wichtige Programmiersprache. Für Anfänger ist es sehr wichtig, die richtige Programmiersoftware auszuwählen. Es gibt viele verschiedene Optionen für C-Programmiersoftware auf dem Markt, aber für Anfänger kann es etwas verwirrend sein, sich für die richtige zu entscheiden. In diesem Artikel werden Anfängern fünf C-Programmiersoftware empfohlen, um ihnen den schnellen Einstieg zu erleichtern und ihre Programmierkenntnisse zu verbessern. Dev-C++Dev-C++ ist eine kostenlose und quelloffene integrierte Entwicklungsumgebung (IDE), die sich besonders für Anfänger eignet. Es ist einfach und benutzerfreundlich und integriert einen Editor,

Behebung eines Problems, bei dem die Anmeldeoptionen von Windows 11/10 deaktiviert sind Behebung eines Problems, bei dem die Anmeldeoptionen von Windows 11/10 deaktiviert sind May 07, 2023 pm 01:10 PM

Viele Windows-Benutzer sind mit dem Problem konfrontiert, dass sie sich aufgrund fehlgeschlagener Anmeldeversuche oder mehrfacher Systemabschaltungen nicht bei Windows 11/10-Systemen anmelden können. Benutzer sind frustriert, weil sie nichts dagegen tun können. Benutzer vergessen möglicherweise ihren PIN-Code, um sich beim System anzumelden, oder es kommt zu Verzögerungen bei der Verwendung oder Installation von Software, und das System muss möglicherweise mehrmals heruntergefahren werden. Aus diesem Grund haben wir eine Liste der besten verfügbaren Lösungen zusammengestellt, die den Verbrauchern zweifellos bei der Lösung dieses Problems helfen werden. Um mehr zu erfahren, lesen Sie diesen Artikel weiter. Hinweis: Bevor Sie dies tun, stellen Sie sicher, dass Sie über die Administratoranmeldeinformationen Ihres Systems und das Microsoft-Kontokennwort verfügen, um Ihre PIN zurückzusetzen. Wenn nicht, warten Sie etwa eine Stunde und versuchen Sie es mit der richtigen PIN

Einführung in die Go-Sprachentwicklungstools: eine Liste der wichtigsten Tools Einführung in die Go-Sprachentwicklungstools: eine Liste der wichtigsten Tools Mar 29, 2024 pm 01:06 PM

Titel: Einführung in die Go-Sprachentwicklungstools: Liste der wesentlichen Tools Im Entwicklungsprozess der Go-Sprache kann die Verwendung geeigneter Entwicklungstools die Entwicklungseffizienz und Codequalität verbessern. In diesem Artikel werden mehrere wichtige Tools vorgestellt, die häufig in der Go-Sprachentwicklung verwendet werden, und spezifische Codebeispiele angehängt, damit die Leser ihre Verwendung und Funktionen intuitiver verstehen können. 1.VisualStudioCodeVisualStudioCode ist ein leichtes und leistungsstarkes plattformübergreifendes Entwicklungstool mit umfangreichen Plug-Ins und Funktionen.

Zehn Python-IDEs und Code-Editoren sehr zu empfehlen! Zehn Python-IDEs und Code-Editoren sehr zu empfehlen! Apr 19, 2023 pm 07:04 PM

Python ist eine sehr einfach zu erlernende, leistungsstarke Programmiersprache. Python umfasst effiziente High-Level-Datenstrukturen und ermöglicht so eine einfache und effiziente objektorientierte Programmierung. Der Lernprozess von Python ist ohne eine IDE oder einen Code-Editor oder einen integrierten Entwicklungseditor (IDE) unverzichtbar. Diese Python-Entwicklungstools helfen Entwicklern, die Entwicklung mit Python zu beschleunigen und die Effizienz zu verbessern. Ein effizienter Code-Editor oder eine effiziente IDE sollte Plug-Ins, Tools und andere Funktionen bereitstellen, die Entwicklern bei der effizienten Entwicklung helfen können. 1.VimVim kann als die beste IDE für Python bezeichnet werden. Vim ist ein fortschrittlicher Texteditor, der die eigentliche „Vi“-Funktionalität des Unix-Editors bietet und immer umfassendere Funktionen unterstützt.

So verwenden Sie ClipChamp: den kostenlosen Video-Editor für Windows 11 So verwenden Sie ClipChamp: den kostenlosen Video-Editor für Windows 11 Apr 20, 2023 am 11:55 AM

Erinnern Sie sich an Windows MovieMaker unter Windows 7? Seit der Einstellung von Windows MovieMaker hat Microsoft keine echten Filmemacher auf den Markt gebracht. Andererseits versuchten sie, die Fotos-App mit einem kleinen und leichten integrierten Videoeditor zu überarbeiten. Nach langer Zeit hat Microsoft mit Clipchamp einen besseren Videoprozessor für alle Windows 11-Geräte auf den Markt gebracht. In diesem Artikel gehen wir eingehend darauf ein, wie Sie alles von der Clipchamp-App auf Ihr Windows 11-Gerät übertragen können. So verwenden Sie Clipchamp – Detaillierte Tutorials sind verfügbar

See all articles