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'; */

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die Verwendung von return in der C-Sprache ist: 1. Für Funktionen, deren Rückgabewerttyp ungültig ist, können Sie die Rückgabeanweisung verwenden, um die Ausführung der Funktion vorzeitig zu beenden. 2. Für Funktionen, deren Rückgabewerttyp nicht ungültig ist, ist die Funktion von Die Return-Anweisung dient dazu, die Ausführung der Funktion zu beenden. 3. Beenden Sie die Ausführung der Funktion vorzeitig wenn die Funktion keinen Wert zurückgibt.

Quellcode: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Ausgabe Die Ausgabe des obigen Codes kann einfach zu dem Schluss kommen: return wird ausgeführt, bevor wir uns schließlich ansehen, was auf der Bytecode-Ebene passiert. Im Folgenden wird ein Teil des Bytecodes der Methode case1 abgefangen und mit dem Quellcode verglichen, um die Bedeutung jeder Anweisung darin zu kommentieren

In HTML5 bedeutet „Breite“ die Breite des Inhaltsbereichs. Sie können innere Ränder, Ränder und äußere Ränder außerhalb des Inhaltsbereichs hinzufügen Element.

Vue3.2-Setup-Syntaxzucker ist ein Syntaxzucker zur Kompilierungszeit, der die kombinierte API in einer einzelnen Dateikomponente (SFC) verwendet, um das umständliche Setup in Vue3.0 zu lösen. Die durch den Import eingeführten deklarierten Variablen, Funktionen und Inhalte werden bereitgestellt Rückkehr, damit sie in Vue3.0 verwendet werden können. 1. Es besteht keine Notwendigkeit, deklarierte Variablen, Funktionen und Inhalte zurückzugeben, die durch Import während der Verwendung eingeführt wurden }from'./utils'//variable constmsg='Hello !'//function func

Detaillierte Erläuterung der CSS-Dimensionseigenschaften: Höhe und Breite In der Frontend-Entwicklung ist CSS eine leistungsstarke Stildefinitionssprache. Unter diesen sind Höhe und Breite die beiden grundlegendsten Dimensionsattribute, mit denen die Höhe und Breite des Elements definiert werden. In diesem Artikel werden diese beiden Eigenschaften im Detail analysiert und spezifische Codebeispiele bereitgestellt. 1. Höhenattribut Das Höhenattribut wird verwendet, um die Höhe eines Elements zu definieren. Sie können Pixel, Prozent oder verwenden

Für die Verwendung von „return“ in JavaScript sind bestimmte Codebeispiele erforderlich. In JavaScript wird die „return“-Anweisung verwendet, um den von einer Funktion zurückgegebenen Wert anzugeben. Es kann nicht nur dazu verwendet werden, die Ausführung einer Funktion zu beenden, sondern auch einen Wert an die Stelle zurückzugeben, an der die Funktion aufgerufen wurde. Die Return-Anweisung hat die folgenden allgemeinen Verwendungszwecke: Einen Wert zurückgeben Die Return-Anweisung kann verwendet werden, um einen Wert an die Stelle zurückzugeben, an der die Funktion aufgerufen wird. Hier ist ein einfaches Beispiel: functionadd(a,b){

JavaScript-Funktionen stellen zwei Schnittstellen zur Interaktion mit der Außenwelt bereit. Die Parameter dienen als Eingang zum Empfang externer Informationen; der Rückgabewert dient als Ausgang für die Rückmeldung der Operationsergebnisse an die Außenwelt. Der folgende Artikel wird Ihnen helfen, den Rückgabewert der JavaScript-Funktion zu verstehen und die Verwendung der Rückgabeanweisung kurz zu analysieren. Ich hoffe, er wird Ihnen hilfreich sein!

Für die Verwendung von return in JavaScript sind bestimmte Codebeispiele erforderlich. In JavaScript ist return ein sehr wichtiges Schlüsselwort. Es wird normalerweise verwendet, um einen Wert in einer Funktion zurückzugeben oder die Ausführung einer Funktion zu beenden. Die Return-Anweisung wird verwendet, um einen Wert an den Aufrufer der Funktion zurückzugeben und die Ausführung der Funktion zu beenden. Die return-Anweisung kann überall in einer Funktion verwendet werden und jeden JavaScript-Datentyp zurückgeben, einschließlich Zahlen, Zeichenfolgen, booleschen Werten,
