Maison développement back-end tutoriel php 超级好用的一个php上传图片类(随机名,缩略图,加水印)_PHP

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

Jun 01, 2016 pm 12:17 PM
上传图片 Ajouter un filigrane 缩略图

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

";

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment désactiver l'aperçu des vignettes de la barre des tâches dans Win11 ? Désactivez la technique d'affichage des vignettes de l'icône de la barre des tâches en déplaçant la souris Comment désactiver l'aperçu des vignettes de la barre des tâches dans Win11 ? Désactivez la technique d'affichage des vignettes de l'icône de la barre des tâches en déplaçant la souris Feb 29, 2024 pm 03:20 PM

Cet article explique comment désactiver la fonction de vignette affichée lorsque la souris déplace l'icône de la barre des tâches dans le système Win11. Cette fonctionnalité est activée par défaut et affiche une vignette de la fenêtre actuelle de l'application lorsque l'utilisateur passe le pointeur de la souris sur une icône d'application dans la barre des tâches. Cependant, certains utilisateurs peuvent trouver cette fonctionnalité moins utile ou perturber leur expérience et souhaiter la désactiver. Les miniatures de la barre des tâches peuvent être amusantes, mais elles peuvent aussi être distrayantes ou ennuyeuses. Compte tenu de la fréquence à laquelle vous survolez cette zone, vous avez peut-être fermé plusieurs fois des fenêtres importantes par inadvertance. Un autre inconvénient est qu'il utilise plus de ressources système, donc si vous cherchez un moyen d'être plus efficace en ressources, nous allons vous montrer comment le désactiver. mais

Comment personnaliser les vignettes des dossiers dans Windows 11 22H2 Comment personnaliser les vignettes des dossiers dans Windows 11 22H2 Apr 30, 2023 pm 04:52 PM

Windows 1122H2 est la première mise à jour de fonctionnalités pour Windows 11 et devrait apporter une tonne de nouvelles fonctionnalités et des améliorations indispensables. L'une des améliorations est la possibilité de prévisualiser les vignettes des fichiers d'un dossier. Si vous n’aimez pas l’apparence des vignettes des dossiers dans Windows 11, voici comment la modifier. Un ensemble d'icônes personnalisées pour les vignettes de dossiers dans Windows 11 (avec l'aimable autorisation de LEXX911 de Reddit) qui vous permet de zoomer sur les aperçus et de modifier les styles d'icônes de dossier. Vous devez toujours gérer les aperçus de fichiers individuels (sous Windows 7, par exemple, les vignettes des dossiers peuvent afficher plusieurs images en même temps), mais vous pouvez les agrandir et les rendre plus pratiques. REMARQUE IMPORTANTE :

Comment afficher les vignettes dans Vscode_Comment afficher les vignettes dans Vscode Comment afficher les vignettes dans Vscode_Comment afficher les vignettes dans Vscode Apr 02, 2024 pm 02:43 PM

1. Entrez d'abord Visual Studio Code et cliquez sur [Fichier] dans le coin supérieur gauche. 2. Cliquez ensuite sur [Préférences]. 3. Cliquez sur l'élément [Paramètres]. 4. Cliquez ensuite sur [Éditeur de texte-Vignette]. 5. Enfin, dans l'élément vignette, activez [Contrôler l'affichage ou non des vignettes].

Génération automatique de vignettes à l'aide de JavaScript Génération automatique de vignettes à l'aide de JavaScript Jun 16, 2023 pm 12:51 PM

Avec le développement d’Internet, les images sont devenues un élément indispensable des pages Web. Mais à mesure que le nombre d’images augmente, la vitesse de chargement des images est devenue un problème très important. Afin de résoudre ce problème, de nombreux sites Web utilisent des vignettes pour afficher des images, mais pour générer des vignettes, nous devons utiliser des outils de traitement d'images professionnels, ce qui est une chose très gênante pour certains non-professionnels. Ensuite, utiliser JavaScript pour générer automatiquement des vignettes devient un bon choix. Comment utiliser JavaS

Comment afficher les vignettes sur une clé USB Comment afficher les vignettes sur une clé USB Feb 12, 2024 pm 08:36 PM

Je rencontre souvent des clients qui disent que quelques problèmes informatiques mineurs sont très gênants dans les moments critiques. En résumé, il y a les éléments suivants. La raison pour laquelle le fichier ne peut pas être copié sur la clé USB peut être due au fait que le format de partition de la clé USB est FAT32 au lieu de NTFS. Vous pouvez essayer de changer le format de partition de la clé USB en NTFS afin de pouvoir copier des fichiers volumineux. Deuxièmement, les images ne sont pas affichées sous forme de vignettes, vous devez donc cliquer dessus une par une pour les retrouver. Le troisième type est que la page devient soudainement plus grande ou plus petite. Si vous ne connaissez pas ces trois situations, elles peuvent être résolues grâce à quelques opérations simples. 1. Changez la partition du disque U en NTFS. Le format de partition par défaut d'un disque U nouvellement acheté est généralement FAT32. Dans des circonstances normales, son utilisation ne pose aucun problème. Cependant, lorsque vous devez copier des fichiers de taille supérieure à 4G, une invite qui ne peut pas être copiée apparaîtra, ce qui entraîne des problèmes d'utilisation. pour

Comment ajouter un filigrane à de belles images Comment ajouter un filigrane à de belles images Apr 08, 2024 pm 03:52 PM

1. Dans la fonction [Embellissement de l'image] de MeituXiuXiu, téléchargez ou sélectionnez l'image à laquelle vous souhaitez ajouter un filigrane. 2. Cliquez sur l'option [Texte] dans la barre d'outils inférieure, saisissez le contenu du filigrane et ajustez sa couleur, sa taille et sa transparence. 3. Ajustez la taille et la position du filigrane, puis cliquez sur [Terminer] pour confirmer l'édition après avoir confirmé que vous êtes satisfait. 4. Enfin, cliquez sur le bouton [Enregistrer] dans le coin supérieur droit pour enregistrer l'image avec le filigrane.

Explication détaillée des étapes pour générer des vignettes en PHP Explication détaillée des étapes pour générer des vignettes en PHP Sep 13, 2023 am 08:40 AM

Explication détaillée des étapes pour générer des vignettes avec PHP, des exemples de code spécifiques sont nécessaires Dans l'ère actuelle de développement rapide d'Internet, les images sont un élément indispensable des pages Web, mais les images haute résolution occuperont non seulement beaucoup de bande passante, mais aussi. affectent également la vitesse de chargement des pages Web de l’utilisateur. Par conséquent, nous devons souvent générer des vignettes à partir d’images originales pour réduire la taille de l’image et celle du fichier. En tant que langage de script côté serveur populaire, PHP fournit de riches fonctions de traitement d'images qui peuvent être utilisées pour générer des vignettes. Les étapes de génération de vignettes en PHP seront présentées en détail ci-dessous.

Comment insérer un tableau dans une présentation Powerpoint Comment insérer un tableau dans une présentation Powerpoint Apr 13, 2023 pm 10:37 PM

Les tableaux des présentations PowerPoint permettent d'afficher les données dans un format structuré lors de votre présentation. Les chiffres indiqués dans le tableau ont un meilleur impact sur le public. Microsoft Powerpoint propose plusieurs façons d'ajouter des tableaux à vos présentations. Vous pouvez choisir d'ajouter un nouveau tableau ou de copier un tableau existant dans une autre application telle qu'Excel ou Word. Méthode 1 : Insérez un tableau en sélectionnant des lignes et des colonnes sur la grille Étape 1 : Sur la vignette PowerPoint, cliquez avec le bouton droit sur la diapositive principale et sélectionnez Nouvelle diapositive. Étape 2 : allez dans Insérer et cliquez sur Tableau. Étape 3 : Dans les menus déroulants, sélectionnez le nombre total de lignes et de colonnes requis pour le tableau. Avis

See all articles