TP5.1 画像にウォーターマーク機能を追加

XuPing.Yang
リリース: 2021-05-06 09:21:02
オリジナル
2038 人が閲覧しました

最近、会社の Web サイト管理システム ページを開発しているときに、一部の顧客から、他の人がより重要な写真を再利用したり盗んだりすることを防ぐために、アップロードされた写真に自動的に透かしを追加できるようにしてほしいとの要望がありました。これにより会社に無用なトラブルがもたらされることになります。トラブルや損失を防ぐことができ、他人による写真の侵害も防ぐことができます。研究を重ね、layuiと組み合わせることで、まずは写真のアップロードと透かし機能の追加が完成しました。いくつかの重要なコードがここにリストされています。誰にとっても役立つことを願っています。

まず、画像処理プラグインをインストールします。このプラグインをインストールするには、まず Composer ソフトウェアを自分のコンピュータにインストールする必要があります。TP5.1 の操作マニュアルには、 Composer のインストール手順:

Linux および Mac OS X では、次のコマンドを実行できます:

curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
ログイン後にコピー

Windows では、Composer-Setup.exe をダウンロードして実行する必要があります。 。特定のインストールについては、ここでは詳しく説明しません。Composer ソフトウェアをインストールした後、イメージ プラグインをインストールする必要があります。実行ウィンドウを開き (システム キー R)、「cmd」と入力して Enter キーを押し、プロジェクト ディレクトリに移動し、次に、composer require topthink/think-imageを実行します。

インストールが完了したら、次のステップに進むことができます。

以下は私のコードの一部です。参考までに。

【HTML】

    {$site.company}会员管理系统    
  

ログイン後にコピー

【画像アップロード】

public function uploadFile(){ //获取上传文件信息 $file = request()->file('file'); //以在上传目录下面生成以当前日期为子目录,存放上传文件 $path = date("Ymd"); //以当前时间和100~1000之间的随机数作为文件名称 $filename = time().rand(100,1000); //将上传的文件移动到指定目录下 $info = $file->move('uploadfile/'.$path.'/',$filename); //验证图片并移动到指定目录 if ($info){ //返回上传成功提示信息 //获取图片的名字 $imgName = $info->getFilename(); $size = $info->getInfo('size'); //获取图片的路径 $photo1 ='/uploadfile/'.$path.'/'.$info->getSaveName(); return json(['code'=>1,'path'=>$photo1]); }else{ //返回上传失败提示信息 return $file->getError(); } }
ログイン後にコピー

【透かしライブラリ】

namespace app\api\classes; use think\Image; class imgWaterClass { /**图片文字水印 * object(think\Image)#47 (3) { ["im":protected] => resource(96) of type (gd) ["gif":protected] => NULL ["info":protected] => array(4) { ["width"] => int(750) ["height"] => int(450) ["type"] => string(4) "jpeg" ["mime"] => string(10) "image/jpeg" } } * */ public function imageWaterText($path,$text){ $img = ".".$path; $image = Image::open($img); $image->text($text,'./static/style/font/simsun.ttc',20,'#ffffff',9 ,"-10px")->save($img); return $img; } public function imageWaterImg($path,$logo){ $img = ".".$path; $logo = ".".$logo; $image = Image::open($img); $image->water($logo,Image::WATER_SOUTHEAST)->save($img); return $img; } }
ログイン後にコピー

[バックグラウンドプログラム処理]

public function save(){ $data = Request::param(); $water = new imgWaterClass(); $img_url = $data['face'];//需要添加水印的图片 $path = "/uploads/logo.png";//水印图片 $img = $water->imageWaterImg($img_url,$path);//添加水印图片 $img_text = $water->imageWaterText($img_url,'我是水印');//添加水印文字 if($img){ return ['code'=>1,'msg'=>'保存成功']; }else{ return ['code'=>0,'msg'=>'保存失败']; } }
ログイン後にコピー

これは私が実際に操作した内容を元に書いたコードの一部です。 ######ありがとう!

関連する推奨事項:
最新の 10 件の thinkphp ビデオ チュートリアル

以上がTP5.1 画像にウォーターマーク機能を追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!