PHP はサムネイルを生成し、ウォーターマークを追加します
PHP でサムネイルを生成し、ウォーターマークを追加します
これは簡単な GD ライブラリ操作です
<?php /**** 燕十八 公益PHP讲堂 论 坛: http://www.zixue.it 微 博: http://weibo.com/Yshiba YY频道: 88354001 ****/ /*** 想操作图片 先得把图片的大小,类型信息得到 水印:就是把指定的水印复制到目标上,并加透明效果 缩略图:就是把大图片复制到小尺寸画面上 ***/ class ImageTool { // imageInfo 分析图片的信息 // return array() public static function imageInfo($image) { // 判断图片是否存在 if (!file_exists($image)) { return false; } $info = getimagesize($image); if ($info == false) { return false; } // 此时info分析出来,是一个数组 $img['width'] = $info[0]; $img['height'] = $info[1]; $img['ext'] = substr($info['mime'], strpos($info['mime'], '/') + 1); return $img; } /* 加水印功能 parm String $dst 等操作图片 parm String $water 水印小图 parm String $save,不填则默认替换原始图 */ public static function water($dst, $water, $save = NULL, $pos = 2, $alpha = 50) { // 先保证2个图片存在 if (!file_exists($dst) || !file_exists($water)) { return false; } // 首先保证水印不能比待操作图片还大 $dinfo = self::imageInfo($dst); $winfo = self::imageInfo($water); if ($winfo['height'] > $dinfo['height'] || $winfo['width'] > $dinfo['width']) { return false; } // 两张图,读到画布上! 但是图片可能是png,可能是jpeg,用什么函数读? $dfunc = 'imagecreatefrom' . $dinfo['ext']; $wfunc = 'imagecreatefrom' . $winfo['ext']; if (!function_exists($dfunc) || !function_exists($wfunc)) { return false; } // 动态加载函数来创建画布 $dim = $dfunc($dst); // 创建待操作的画布 $wim = $wfunc($water); // 创建水印画布 // 根据水印的位置 计算粘贴的坐标 switch($pos) { case 0 : // 左上角 $posx = 0; $posy = 0; break; case 1 : // 右上角 $posx = $dinfo['width'] - $winfo['width']; $posy = 0; break; case 3 : // 左下角 $posx = 0; $posy = $dinfo['height'] - $winfo['height']; break; default : $posx = $dinfo['width'] - $winfo['width']; $posy = $dinfo['height'] - $winfo['height']; } // 加水印 imagecopymerge($dim, $wim, $posx, $posy, 0, 0, $winfo['width'], $winfo['height'], $alpha); // 保存 if (!$save) { $save = $dst; unlink($dst); // 删除原图 } $createfunc = 'image' . $dinfo['ext']; $createfunc($dim, $save); imagedestroy($dim); imagedestroy($wim); return true; } /** thumb 生成缩略图 等比例缩放,两边留白 **/ public static function thumb($dst, $save = NULL, $width = 200, $height = 200) { // 首先判断待处理的图片存不存在 $dinfo = self::imageInfo($dst); if ($dinfo == false) { return false; } // 计算缩放比例 $calc = min($width / $dinfo['width'], $height / $dinfo['height']); // 创建原始图的画布 $dfunc = 'imagecreatefrom' . $dinfo['ext']; $dim = $dfunc($dst); // 创建缩略画布 $tim = imagecreatetruecolor($width, $height); // 创建白色填充缩略画布 $white = imagecolorallocate($tim, 255, 255, 255); // 填充缩略画布 imagefill($tim, 0, 0, $white); // 复制并缩略 $dwidth = (int)$dinfo['width'] * $calc; $dheight = (int)$dinfo['height'] * $calc; $paddingx = (int)($width - $dwidth) / 2; $paddingy = (int)($height - $dheight) / 2; imagecopyresampled($tim, $dim, $paddingx, $paddingy, 0, 0, $dwidth, $dheight, $dinfo['width'], $dinfo['height']); // 保存图片 if (!$save) { $save = $dst; unlink($dst); } $createfunc = 'image' . $dinfo['ext']; $createfunc($tim, $save); imagedestroy($dim); imagedestroy($tim); return true; } } // print_r(ImageTool::imageInfo('./home.jpg')); /* echo ImageTool::water('./home.jpg','./smallfeng.png','home1.jpg',0)?'OK':'FAIL'; echo ImageTool::water('./home.jpg','./smallfeng.png','home2.jpg',1)?'OK':'FAIL'; echo ImageTool::water('./home.jpg','./smallfeng.png','home3.jpg',2)?'OK':'FAIL'; echo ImageTool::water('./home.jpg','./smallfeng.png','home4.jpg',3)?'OK':'FAIL'; */

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









C 言語における return の使い方は、 1. 戻り値の型が void の関数については、return 文を使用して関数の実行を早期に終了することができます; 2. 戻り値の型が void ではない関数については、 return ステートメントは、関数の実行を終了するためのものです。結果は呼び出し元に返されます。 3. 関数の実行を早期に終了します。関数内で return ステートメントを使用して、関数の実行を早期に終了することもできます。関数が値を返さない場合。

ソースコード: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}#出力 上記のコードの出力は、単純に次のように結論付けることができます:finally の前に return が実行されます。バイトコード レベルで何が起こるかを見てみましょう。以下は、case1 メソッドのバイトコードの一部をインターセプトし、ソース コードを比較して、各命令の意味に注釈を付けます。

HTML5 では、width は幅を意味します。width 属性は要素のコンテンツ領域の幅を定義します。コンテンツ領域の外側に内側のマージン、境界線、および外側のマージンを追加できます。「要素 {width: value}」を設定するだけで済みます。要素。

Vue3.2 セットアップ構文シュガーは、単一ファイル コンポーネント (SFC) で結合された API を使用して、Vue3.0 の面倒なセットアップを解決するコンパイル時構文シュガーです。宣言された変数、関数、インポートによって導入されたコンテンツは、インポートによって公開されます。使用上の問題点 1. 宣言した変数、関数、import で導入した内容を使用中に return する必要はなく、糖衣構文を使用することができます。 // 導入した内容をインポート import{getToday }from'./utils'//variable constmsg='Hello !'//function func

CSS 寸法プロパティの詳細な説明: 高さと幅 フロントエンド開発において、CSS は強力なスタイル定義言語です。その中で、高さと幅は 2 つの最も基本的な寸法属性であり、要素の高さと幅を定義するために使用されます。この記事では、これら 2 つのプロパティを詳細に分析し、具体的なコード例を示します。 1. height 属性 height 属性は、要素の高さを定義するために使用されます。ピクセル、パーセンテージ、または

JavaScript での return の使用には特定のコード例が必要です。 JavaScript では、return ステートメントを使用して関数から返される値を指定します。関数の実行を終了するために使用できるだけでなく、関数が呼び出された場所に値を返すこともできます。 return ステートメントには次の一般的な用途があります。 値を返す return ステートメントは、関数が呼び出された場所に値を返すために使用できます。簡単な例を次に示します。 functionadd(a,b){

JavaScript 関数は、外部と対話するための 2 つのインターフェースを提供し、パラメータは外部情報を受け取る入り口として機能し、戻り値は演算結果を外部にフィードバックする出口として機能します。次の記事では、JavaScript 関数の戻り値を理解し、return ステートメントの使用法を簡単に分析します。

JavaScript で return を使用する方法には、具体的なコード例が必要です。JavaScript では、return は非常に重要なキーワードです。通常、関数の値を返すか、関数の実行を終了するために使用されます。 return ステートメントは、関数の呼び出し元に値を返し、関数の実行を終了するために使用されます。 return ステートメントは関数内のどこでも使用でき、数値、文字列、ブール値などの任意の JavaScript データ型を返すことができます。
