ホームページ >バックエンド開発 >PHPチュートリアル >ueditor を使用して写真をアップロードし、透かしを追加する方法について話しましょう
ueditor を使用して写真をアップロードし、透かしを追加するにはどうすればよいですか?次の記事ではueditorを使って画像をアップロードしたりウォーターマークを追加したりする方法を紹介しますので、ぜひ参考にしてください。
ブログに写真がアップロードされるとき、ブログのリンクに透かしを入れたいと思っています。Nuggets と CSDN はすべてこれを行っています。これは学ばなければなりません。
通常の画像アップロードで大丈夫ですが、記事編集時にueditorを使って画像をアップロードしたりウォーターマークを追加したりするには、ueditorのPHPソースコードの一部を修正する必要があるので、簡単に記録しておきます。
まず、php フォルダーの下にある Uploader.class.php を開きます。
ファイルをアップロードするための主要な処理メソッドであるプライベート関数 upFile() を見つけます。
122 行目を見つけます: $this->stateInfo = $this->stateMap[0];
この下に追加します: $this-> ;imageWaterMark($this->filePath,9,'logo.png');
imageWaterMark はカスタム関数です。
については後述します。$this-> filePath これは、画像をアップロードするパスです。9 はウォーターマークの場所を表します。右下隅の logo.png は、追加するウォーターマーク画像です。これは、同じディレクトリ /php/ にあります。別のパスに置く 相対パスを使用してください。
以下は、Uploader クラスに追加されたカスタム関数です。 すべてのパラメータは関数のコメントに記述されています。呼び出しの際は
/* * 功能: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 一样。 */ 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<p> に注意する必要があります。これは使いやすいです。写真をアップロードしたり透かしを追加したりするのは簡単です。 </p><p>注意: ウォーターマーク機能を使用するには、GD ライブラリ モジュールの使用が必要です。PHP に GD ライブラリ モジュールがインストールされているかどうかを確認してください。 </p><p> 推奨学習: 「<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">PHP ビデオ チュートリアル </a>」</p>
以上がueditor を使用して写真をアップロードし、透かしを追加する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。