Heim Backend-Entwicklung PHP-Tutorial 超级好用的一个php上传图片类(随机名,缩略图,加水印)_PHP

超级好用的一个php上传图片类(随机名,缩略图,加水印)_PHP

Jun 01, 2016 pm 12:17 PM
上传图片 Wasserzeichen hinzufügen 缩略图

Upimages.class.php php上传类
复制代码 代码如下:
class UpImages {
var $annexFolder = "upload";//附件存放点,默认为:annex
var $smallFolder = "small";//缩略图存放路径,注:必须是放在 $annexFolder下的子目录,默认为:smallimg
var $markFolder = "mark";//水印图片存放处
var $upFileType = "jpg gif png";//上传的类型,默认为:jpg gif png rar zip
var $upFileMax = 1024;//上传大小限制,单位是“KB”,默认为:1024KB
var $fontType;//字体
var $maxWidth = 500; //图片最大宽度
var $maxHeight = 600; //图片最大高度
function UpImages($annexFolder,$smallFolder,$includeFolder) {
$this->annexFolder = $annexFolder;
$this->smallFolder = $smallFolder;
$this->fontType = $includeFolder."/04B_08__.TTF";
}
function upLoad($inputName) {
$imageName = time();//设定当前时间为图片名称
if(@empty($_FILES[$inputName]["name"])) die("没有上传图片信息,请确认");
$name = explode(".",$_FILES[$inputName]["name"]);//将上传前的文件以“.”分开取得文件类型
$imgCount = count($name);//获得截取的数量
$imgType = $name[$imgCount-1];//取得文件的类型
if(strpos($this->upFileType,$imgType) === false) die(error("上传文件类型仅支持 ".$this->upFileType." 不支持 ".$imgType));
$photo = $imageName.".".$imgType;//写入数据库的文件名
$uploadFile = $this->annexFolder."/".$photo;//上传后的文件名称
$upFileok = move_uploaded_file($_FILES[$inputName]["tmp_name"],$uploadFile);
if($upFileok) {
$imgSize = $_FILES[$inputName]["size"];
$kSize = round($imgSize/1024);
if($kSize > ($this->upFileMax*1024)) {
@unlink($uploadFile);
die(error("上传文件超过 ".$this->upFileMax."KB"));
}
} else {
die(error("上传图片失败,请确认你的上传文件不超过 $upFileMax KB 或上传时间超时"));
}
return $photo;
}
function getInfo($photo) {
$photo = $this->annexFolder."/".$photo;
$imageInfo = getimagesize($photo);
$imgInfo["width"] = $imageInfo[0];
$imgInfo["height"] = $imageInfo[1];
$imgInfo["type"] = $imageInfo[2];
$imgInfo["name"] = basename($photo);
return $imgInfo;
}
function smallImg($photo,$width=128,$height=128) {
$imgInfo = $this->getInfo($photo);
$photo = $this->annexFolder."/".$photo;//获得图片源
$newName = substr($imgInfo["name"],0,strrpos($imgInfo["name"], "."))."_thumb.jpg";//新图片名称
if($imgInfo["type"] == 1) {
$img = imagecreatefromgif($photo);
} elseif($imgInfo["type"] == 2) {
$img = imagecreatefromjpeg($photo);
} elseif($imgInfo["type"] == 3) {
$img = imagecreatefrompng($photo);
} else {
$img = "";
}
if(empty($img)) return False;
$width = ($width > $imgInfo["width"]) ? $imgInfo["width"] : $width;
$height = ($height > $imgInfo["height"]) ? $imgInfo["height"] : $height;
$srcW = $imgInfo["width"];
$srcH = $imgInfo["height"];
if ($srcW * $width > $srcH * $height) {
$height = round($srcH * $width / $srcW);
} else {
$width = round($srcW * $height / $srcH);
}
if (function_exists("imagecreatetruecolor")) {
$newImg = imagecreatetruecolor($width, $height);
ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
} else {
$newImg = imagecreate($width, $height);
ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
}
if ($this->toFile) {
if (file_exists($this->annexFolder."/".$this->smallFolder."/".$newName)) @unlink($this->annexFolder."/".$this->smallFolder."/".$newName);
ImageJPEG($newImg,$this->annexFolder."/".$this->smallFolder."/".$newName);
return $this->annexFolder."/".$this->smallFolder."/".$newName;
} else {
ImageJPEG($newImg);
}
ImageDestroy($newImg);
ImageDestroy($img);
return $newName;
}
function waterMark($photo,$text) {
$imgInfo = $this->getInfo($photo);
$photo = $this->annexFolder."/".$photo;
$newName = substr($imgInfo["name"], 0, strrpos($imgInfo["name"], ".")) . "_mark.jpg";
switch ($imgInfo["type"]) {
case 1:
$img = imagecreatefromgif($photo);
break;
case 2:
$img = imagecreatefromjpeg($photo);
break;
case 3:
$img = imagecreatefrompng($photo);
break;
default:
return False;
}
if (empty($img)) return False;
$width = ($this->maxWidth > $imgInfo["width"]) ? $imgInfo["width"] : $this->maxWidth;
$height = ($this->maxHeight > $imgInfo["height"]) ? $imgInfo["height"] : $this->maxHeight;
$srcW = $imgInfo["width"];
$srcH = $imgInfo["height"];
if ($srcW * $width > $srcH * $height) {
$height = round($srcH * $width / $srcW);
} else {
$width = round($srcW * $height / $srcH);
}
if (function_exists("imagecreatetruecolor")) {
$newImg = imagecreatetruecolor($width, $height);
ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
} else {
$newImg = imagecreate($width, $height);
ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
}

$white = imageColorAllocate($newImg, 255, 255, 255);
$black = imageColorAllocate($newImg, 0, 0, 0);
$alpha = imageColorAllocateAlpha($newImg, 230, 230, 230, 40);
ImageFilledRectangle($newImg, 0, $height-26, $width, $height, $alpha);
ImageFilledRectangle($newImg, 13, $height-20, 15, $height-7, $black);
ImageTTFText($newImg, 4.9, 0, 20, $height-14, $black, $this->fontType, $text[0]);
ImageTTFText($newImg, 4.9, 0, 20, $height-6, $black, $this->fontType, $text[1]);
if($this->toFile) {
if (file_exists($this->annexFolder."/".$this->markFolder."/".$newName)) @unlink($this->annexFolder."/".$this->markFolder."/".$newName);
ImageJPEG($newImg,$this->annexFolder."/".$this->markFolder."/".$newName);
return $this->annexFolder."/".$this->markFolder."/".$newName;
} else {
ImageJPEG($newImg);
}
ImageDestroy($newImg);
ImageDestroy($img);
return $newName;
}
}
?>

使用方法
复制代码 代码如下:
include 'Upimages.class.php';
$max="upload"; //文件上传路径
$mix="small"; //缩略图路径(必须在upload下建立)
$mark="mark"; //加水引的图片存放路径
$text = array("oktang","2012"); //水印内容
$img= new UpImages($max,$mix,$max); //实例化类文件
$photo = $img->upLoad("file"); //上传的文件域
$img->maxWidth = $img->maxHeight = 600; //设置高,和宽
$img->toFile = true;
$newSmallImg = $img->smallImg($photo);
$newMark = $img->waterMark($photo,$text);
echo $newSmallImg;
echo $newMark;
echo "超级好用的一个php上传图片类(随机名,缩略图,加水印)_PHP

";
echo "超级好用的一个php上传图片类(随机名,缩略图,加水印)_PHP

";

注意里面有个字体文件,大家可以从网上下载。

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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen 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 deaktiviere ich die Vorschau der Taskleisten-Miniaturansichten in Win11? Deaktivieren Sie die Anzeige der Miniaturansichten der Taskleistensymbole durch Bewegen der Maus Wie deaktiviere ich die Vorschau der Taskleisten-Miniaturansichten in Win11? Deaktivieren Sie die Anzeige der Miniaturansichten der Taskleistensymbole durch Bewegen der Maus Feb 29, 2024 pm 03:20 PM

In diesem Artikel erfahren Sie, wie Sie die Miniaturbildfunktion deaktivieren, die angezeigt wird, wenn die Maus das Taskleistensymbol im Win11-System bewegt. Diese Funktion ist standardmäßig aktiviert und zeigt eine Miniaturansicht des aktuellen Fensters der Anwendung an, wenn der Benutzer den Mauszeiger über ein Anwendungssymbol in der Taskleiste bewegt. Einige Benutzer empfinden diese Funktion jedoch möglicherweise als weniger nützlich oder störend für ihr Erlebnis und möchten sie deaktivieren. Miniaturansichten in der Taskleiste können Spaß machen, aber auch ablenken oder stören. Wenn man bedenkt, wie oft Sie mit der Maus über diesen Bereich fahren, haben Sie möglicherweise ein paar Mal versehentlich wichtige Fenster geschlossen. Ein weiterer Nachteil besteht darin, dass es mehr Systemressourcen verbraucht. Wenn Sie also nach einer Möglichkeit suchen, ressourceneffizienter zu arbeiten, zeigen wir Ihnen, wie Sie es deaktivieren können. Aber

So passen Sie Ordner-Miniaturansichten in Windows 11 22H2 an So passen Sie Ordner-Miniaturansichten in Windows 11 22H2 an Apr 30, 2023 pm 04:52 PM

Windows 1122H2 ist das erste Funktionsupdate für Windows 11 und dürfte eine Menge neuer Funktionen und dringend benötigter Verbesserungen mit sich bringen. Eine der Verbesserungen ist die Möglichkeit, Miniaturansichten von Dateien in einem Ordner in der Vorschau anzuzeigen. Wenn Ihnen das Aussehen der Ordner-Miniaturansichten in Windows 11 nicht gefällt, können Sie es wie folgt ändern. Eine Reihe benutzerdefinierter Symbole für Ordner-Miniaturansichten in Windows 11 (mit freundlicher Genehmigung von Reddits LEXX911), mit denen Sie Vorschauen vergrößern und Ordnersymbolstile ändern können. Sie müssen sich immer noch mit der Vorschau einzelner Dateien befassen (in Windows 7 können Ordner-Miniaturansichten beispielsweise mehrere Bilder gleichzeitig anzeigen), aber Sie können sie größer und komfortabler gestalten. WICHTIGER HINWEIS:

So zeigen Sie Miniaturansichten in Vscode an_So zeigen Sie Miniaturansichten in Vscode an So zeigen Sie Miniaturansichten in Vscode an_So zeigen Sie Miniaturansichten in Vscode an Apr 02, 2024 pm 02:43 PM

1. Geben Sie zunächst Visual Studio Code ein und klicken Sie oben links auf [Datei]. 2. Klicken Sie dann auf [Einstellungen]. 3. Klicken Sie auf den Punkt [Einstellungen]. 4. Klicken Sie dann auf [Texteditor-Miniaturansicht]. 5. Aktivieren Sie abschließend im Miniaturansichtselement die Option [Kontrollieren, ob Miniaturansichten angezeigt werden sollen].

Automatische Miniaturbildgenerierung mit JavaScript Automatische Miniaturbildgenerierung mit JavaScript Jun 16, 2023 pm 12:51 PM

Mit der Entwicklung des Internets sind Bilder zu einem unverzichtbaren Bestandteil von Webseiten geworden. Da jedoch die Anzahl der Bilder zunimmt, ist die Ladegeschwindigkeit von Bildern zu einem sehr wichtigen Thema geworden. Um dieses Problem zu lösen, verwenden viele Websites Miniaturansichten zum Anzeigen von Bildern. Um Miniaturansichten zu generieren, müssen wir jedoch professionelle Bildverarbeitungstools verwenden, was für einige Laien sehr problematisch ist. Dann ist die Verwendung von JavaScript zur automatischen Generierung von Miniaturansichten eine gute Wahl. So verwenden Sie JavaS

So zeigen Sie Miniaturansichten auf einem USB-Laufwerk an So zeigen Sie Miniaturansichten auf einem USB-Laufwerk an Feb 12, 2024 pm 08:36 PM

Ich treffe oft auf Kunden, die sagen, dass ein paar kleinere Computerprobleme in kritischen Zeiten sehr störend seien. Zusammenfassend gibt es Folgendes. Der Grund dafür, dass die Datei nicht auf den USB-Stick kopiert werden kann, liegt möglicherweise darin, dass das Partitionsformat des USB-Sticks FAT32 statt NTFS ist. Sie können versuchen, das Partitionsformat des USB-Flash-Laufwerks auf NTFS zu ändern, damit Sie große Dateien kopieren können. Zweitens werden die Bilder nicht als Miniaturansichten angezeigt, sodass Sie sie einzeln anklicken müssen, um sie zu finden. Der dritte Typ besteht darin, dass die Seite plötzlich größer oder kleiner wird. Wenn Sie diese drei Situationen nicht kennen, können sie mit ein paar einfachen Handgriffen gelöst werden. 1. Ändern Sie die U-Disk-Partition auf NTFS. Das Standardpartitionsformat einer neu gekauften U-Disk ist im Allgemeinen FAT32. Unter normalen Umständen ist die Verwendung kein Problem. Wenn Sie jedoch Dateien kopieren müssen, die größer als 4G sind, wird eine Meldung angezeigt, die nicht kopiert werden kann, was zu einigen Problemen bei der Verwendung führt. für

Detaillierte Erläuterung der Schritte zum Generieren von Miniaturansichten in PHP Detaillierte Erläuterung der Schritte zum Generieren von Miniaturansichten in PHP Sep 13, 2023 am 08:40 AM

Detaillierte Erläuterung der Schritte zum Generieren von Miniaturansichten mit PHP, spezifische Codebeispiele sind erforderlich. In der heutigen Zeit der schnellen Internetentwicklung sind Bilder ein unverzichtbarer Bestandteil von Webseiten, aber hochauflösende Bilder beanspruchen nicht nur viel Bandbreite, sondern auch wirken sich auch auf die Ladegeschwindigkeit der Webseite des Benutzers aus. Daher müssen wir häufig Miniaturansichten aus Originalbildern erstellen, um die Bild- und Dateigröße zu reduzieren. Als beliebte serverseitige Skriptsprache bietet PHP umfangreiche Bildverarbeitungsfunktionen, die zum Generieren von Miniaturansichten verwendet werden können. Die Schritte zum Generieren von Miniaturansichten in PHP werden im Folgenden ausführlich vorgestellt.

So fügen Sie schönen Bildern Wasserzeichen hinzu So fügen Sie schönen Bildern Wasserzeichen hinzu Apr 08, 2024 pm 03:52 PM

1. Laden Sie in der Funktion [Bildverschönerung] von MeituXiuXiu das Bild hoch, dem Sie ein Wasserzeichen hinzufügen möchten, oder wählen Sie es aus. 2. Klicken Sie in der unteren Symbolleiste auf die Option [Text], geben Sie den Wasserzeicheninhalt ein und passen Sie dessen Farbe, Größe und Transparenz an. 3. Passen Sie die Größe und Position des Wasserzeichens an und klicken Sie auf [Fertig stellen], um die Bearbeitung zu bestätigen, nachdem Sie bestätigt haben, dass Sie zufrieden sind. 4. Klicken Sie abschließend auf die Schaltfläche [Speichern] in der oberen rechten Ecke, um das Bild mit dem Wasserzeichen zu speichern.

So fügen Sie eine Tabelle in eine Powerpoint-Präsentation ein So fügen Sie eine Tabelle in eine Powerpoint-Präsentation ein Apr 13, 2023 pm 10:37 PM

Tabellen in PowerPoint-Präsentationen helfen bei der Präsentation von Daten in einem strukturierten Format. Die in der Tabelle aufgeführten Zahlen haben eine bessere Wirkung auf das Publikum. Microsoft Powerpoint bietet mehrere Möglichkeiten, Tabellen zu Ihren Präsentationen hinzuzufügen. Sie können eine neue Tabelle hinzufügen oder eine vorhandene Tabelle in einer anderen Anwendung wie Excel oder Word kopieren. Methode 1: Fügen Sie eine Tabelle ein, indem Sie Zeilen und Spalten im Raster auswählen. Schritt 1: Klicken Sie in der PowerPoint-Miniaturansicht mit der rechten Maustaste auf „Folienvorlage“ und wählen Sie „Neue Folie“. Schritt 2: Gehen Sie zu Einfügen und klicken Sie auf Tabelle. Schritt 3: Wählen Sie aus den Dropdown-Menüs die Gesamtzahl der für die Tabelle erforderlichen Zeilen und Spalten aus. Beachten

See all articles