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

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

Jun 01, 2016 pm 12:17 PM
Muat naik gambar tambah tera air lakaran kecil

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

";

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melumpuhkan pratonton lakaran kecil bar tugas dalam Win11 Matikan teknik lakaran kecil paparan ikon bar tugas dengan menggerakkan tetikus Bagaimana untuk melumpuhkan pratonton lakaran kecil bar tugas dalam Win11 Matikan teknik lakaran kecil paparan ikon bar tugas dengan menggerakkan tetikus Feb 29, 2024 pm 03:20 PM

Artikel ini akan memperkenalkan cara untuk mematikan fungsi lakaran kenit yang dipaparkan apabila tetikus menggerakkan ikon bar tugas dalam sistem Win11. Ciri ini dihidupkan secara lalai dan memaparkan lakaran kecil tetingkap semasa aplikasi apabila pengguna menuding tetikus pada ikon aplikasi pada bar tugas. Walau bagaimanapun, sesetengah pengguna mungkin mendapati ciri ini kurang berguna atau mengganggu pengalaman mereka dan ingin mematikannya. Lakaran kecil bar tugas boleh menjadi menyeronokkan, tetapi ia juga boleh mengganggu atau menjengkelkan. Memandangkan kekerapan anda menuding di atas kawasan ini, anda mungkin telah menutup tetingkap penting secara tidak sengaja beberapa kali. Kelemahan lain ialah ia menggunakan lebih banyak sumber sistem, jadi jika anda telah mencari cara untuk menjadi lebih cekap sumber, kami akan menunjukkan kepada anda cara untuk melumpuhkannya. tetapi

Bagaimana untuk menyesuaikan imej kecil folder dalam Windows 11 22H2 Bagaimana untuk menyesuaikan imej kecil folder dalam Windows 11 22H2 Apr 30, 2023 pm 04:52 PM

Windows 1122H2 ialah kemas kini ciri pertama untuk Windows 11 dan sepatutnya membawa satu tan ciri baharu dan penambahbaikan yang amat diperlukan. Salah satu penambahbaikan ialah keupayaan untuk melihat imej kecil folder fail dalam folder. Jika anda tidak menyukai rupa lakaran kecil folder dalam Windows 11, berikut ialah cara anda boleh menukarnya. Satu set ikon tersuai untuk lakaran kenit folder dalam Windows 11 (ikhsan LEXX911 Reddit) yang membolehkan anda mengezum masuk pada pratonton dan menukar gaya ikon folder. Anda masih perlu berurusan dengan pratonton fail individu (dalam Windows 7, sebagai contoh, lakaran kecil folder boleh memaparkan berbilang imej pada masa yang sama), tetapi anda boleh menjadikannya lebih besar dan lebih mudah. NOTA PENTING:

Bagaimana untuk memaparkan imej kecil dalam Vscode_Cara untuk memaparkan imej kecil dalam Vscode Bagaimana untuk memaparkan imej kecil dalam Vscode_Cara untuk memaparkan imej kecil dalam Vscode Apr 02, 2024 pm 02:43 PM

1. Mula-mula masukkan Kod Visual Studio dan klik [Fail] di sudut kiri atas. 2. Kemudian klik [Keutamaan]. 3. Klik item [Tetapan]. 4. Kemudian klik [Teks Editor-Thumbnail]. 5. Akhir sekali, dalam item lakaran kenit, hidupkan [Kawal sama ada untuk memaparkan lakaran kecil].

Penjanaan lakaran kecil automatik menggunakan JavaScript Penjanaan lakaran kecil automatik menggunakan JavaScript Jun 16, 2023 pm 12:51 PM

Dengan perkembangan Internet, gambar telah menjadi bahagian yang sangat diperlukan dalam laman web. Tetapi apabila bilangan imej meningkat, kelajuan memuatkan imej telah menjadi isu yang sangat penting. Untuk menyelesaikan masalah ini, banyak tapak web menggunakan lakaran kecil untuk memaparkan imej, tetapi untuk menghasilkan lakaran kecil, kita perlu menggunakan alat pemprosesan imej profesional, yang merupakan perkara yang sangat menyusahkan bagi sesetengah orang bukan profesional. Kemudian, menggunakan JavaScript untuk mencapai penjanaan lakaran kecil automatik menjadi pilihan yang baik. Cara menggunakan JavaS

Bagaimana untuk memaparkan lakaran kecil dalam pemacu USB Bagaimana untuk memaparkan lakaran kecil dalam pemacu USB Feb 12, 2024 pm 08:36 PM

Saya sering menemui pelanggan yang mengatakan bahawa beberapa masalah komputer kecil sangat menyusahkan pada masa kritikal. Secara ringkasnya, terdapat perkara berikut. Sebab mengapa fail tidak boleh disalin ke pemacu kilat USB mungkin kerana format partition pemacu kilat USB ialah FAT32 dan bukannya NTFS. Anda boleh cuba menukar format partition pemacu kilat USB kepada NTFS supaya anda boleh menyalin fail besar. Kedua, gambar tidak dipaparkan sebagai lakaran kecil, jadi anda perlu klik padanya satu persatu untuk mencarinya. Jenis ketiga ialah halaman tiba-tiba menjadi lebih besar atau lebih kecil. Jika anda tidak mengetahui ketiga-tiga situasi ini, ia boleh diselesaikan dengan beberapa operasi mudah. 1. Tukar partition cakera U kepada NTFS Format partition lalai bagi cakera U yang baru dibeli biasanya FAT32 Dalam keadaan biasa, tiada masalah untuk menggunakannya. Walau bagaimanapun, apabila anda perlu menyalin fail yang lebih besar daripada 4G, gesaan yang tidak boleh disalin akan muncul, yang membawa beberapa masalah untuk digunakan. untuk

Bagaimana untuk menambah tera air pada gambar yang cantik Bagaimana untuk menambah tera air pada gambar yang cantik Apr 08, 2024 pm 03:52 PM

1. Dalam fungsi [Picture Beautification] MeituXiuXiu, muat naik atau pilih gambar yang anda ingin tambahkan tera air. 2. Klik pilihan [Teks] pada bar alat bawah, masukkan kandungan tera air dan laraskan warna, saiz dan ketelusannya. 3. Laraskan saiz dan kedudukan tera air, dan klik [Selesai] untuk mengesahkan penyuntingan selepas mengesahkan bahawa anda berpuas hati. 4. Akhir sekali, klik butang [Simpan] di penjuru kanan sebelah atas untuk menyimpan imej dengan tera air.

Penjelasan terperinci tentang langkah-langkah untuk menghasilkan lakaran kecil dalam PHP Penjelasan terperinci tentang langkah-langkah untuk menghasilkan lakaran kecil dalam PHP Sep 13, 2023 am 08:40 AM

Penjelasan terperinci tentang langkah-langkah untuk menjana lakaran kecil dengan PHP, contoh kod khusus diperlukan Dalam era pembangunan Internet yang pesat hari ini, gambar merupakan bahagian yang tidak boleh diketepikan dalam laman web, tetapi gambar beresolusi tinggi bukan sahaja akan mengambil banyak lebar jalur, tetapi. juga mempengaruhi kelajuan pemuatan halaman web pengguna. Oleh itu, kita selalunya perlu menjana imej kecil daripada imej asal untuk mengurangkan saiz imej dan saiz fail. Sebagai bahasa skrip sebelah pelayan yang popular, PHP menyediakan fungsi pemprosesan imej yang kaya yang boleh digunakan untuk menjana imej kecil. Berikut akan memperkenalkan secara terperinci langkah-langkah untuk menghasilkan lakaran kecil dalam PHP.

Bagaimana untuk memasukkan jadual dalam persembahan Powerpoint Bagaimana untuk memasukkan jadual dalam persembahan Powerpoint Apr 13, 2023 pm 10:37 PM

Jadual dalam persembahan PowerPoint membantu memaparkan data dalam format berstruktur apabila anda membentangkan. Nombor yang ditunjukkan dalam jadual mempunyai kesan yang lebih baik kepada penonton. Microsoft Powerpoint mempunyai beberapa cara untuk menambah jadual pada pembentangan anda. Anda boleh memilih untuk menambah jadual baharu atau menyalin daripada jadual sedia ada dalam aplikasi lain seperti Excel atau Word. Kaedah 1: Sisipkan jadual dengan memilih baris dan lajur pada grid Langkah 1: Pada lakaran kecil PowerPoint, klik kanan Slaid Master dan pilih Slaid Baharu. Langkah 2: Pergi ke Sisipkan dan klik Jadual. Langkah 3: Daripada menu lungsur turun, pilih jumlah bilangan baris dan lajur yang diperlukan untuk jadual. Notis

See all articles