PHP图片等比缩放和增加Logo水印代码详解和注释
//PHP图片的等比缩放和增加Logo水印 /** * 等比缩放函数(以保存的方式实现) * @param string $picName 被缩放的处理图片源 * @param int $maxx 缩放后图片的最大宽度 * @param int $maxy 缩放后图片的最大高度 * @param string $pre 缩放后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>s_a.jpg */ function imageNewageUpdateSize($picName,$maxx=100,$maxy=100,$pre="s_"){ $imageNewageInfo = getimageNewageSize($picName); //获取图片的基本信息 $w = $imageNewageInfo[0];//获取宽度 $h = $imageNewageInfo[1];//获取高度 //获取图片的类型并为此创建对应图片资源 switch($imageNewageInfo[2]){ case 1: //gif $imageNew = imageNewagecreatefromgif($picName); break; case 2: //jpg $imageNew = imageNewagecreatefromjpeg($picName); break; case 3: //png $imageNew = imageNewagecreatefrompng($picName); break; default: die("图片类型错误!"); } //计算缩放比例 if(($maxx/$w)>($maxy/$h)){ $b = $maxy/$h; }else{ $b = $maxx/$w; } //计算出缩放后的尺寸 $nw = floor($w*$b); $nh = floor($h*$b); //创建一个新的图像源(目标图像) $nimageNew = imageNewagecreatetruecolor($nw,$nh); //执行等比缩放 imageNewagecopyresampled($nimageNew,$imageNew,0,0,0,0,$nw,$nh,$w,$h); //输出图像(根据源图像的类型,输出为对应的类型) $picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息 $newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"]; switch($imageNewageInfo[2]){ case 1: imageNewagegif($nimageNew,$newpicName); break; case 2: imageNewagejpeg($nimageNew,$newpicName); break; case 3: imageNewagepng($nimageNew,$newpicName); break; } //释放图片资源 imageNewagedestroy($imageNew); imageNewagedestroy($nimageNew); //返回结果 return $newpicName; } //调用 echo imageNewageUpdateSize("./imageNewages/leyangjun.jpg",400,400,"ss_"); //你自己要添加的图片 /** * 为一张图片添加上一个logo图片水印(以保存的方式实现) * @param string $picName 被处理图片源 * @param string $logo 水印图片 * @param string $pre 处理后图片名的前缀名 * @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg */ function imageNewageUpdateLogo($picName,$logo,$pre="n_"){ $picNameimageNewageInfo = getimageNewageSize($picName); //获取图片源的基本信息 $logoimageNewageInfo = getimageNewageSize($logo); //获取logo图片的基本信息 //var_dump($logoimageNewageInfo); //根据图片类型创建出对应的图片源 switch($picNameimageNewageInfo[2]){ case 1: //gif $imageNew = imageNewagecreatefromgif($picName); break; case 2: //jpg $imageNew = imageNewagecreatefromjpeg($picName); break; case 3: //png $imageNew = imageNewagecreatefrompng($picName); break; default: die("图片类型错误!"); } //根据logo图片类型创建出对应的图片源 switch($logoimageNewageInfo[2]){ case 1: //gif $logoimageNew = imageNewagecreatefromgif($logo); break; case 2: //jpg $logoimageNew = imageNewagecreatefromjpeg($logo); break; case 3: //png $logoimageNew = imageNewagecreatefrompng($logo); break; default: die("logo图片类型错误!"); } //执行图片水印处理 源图的高-logo图的高 源图的宽-logo图的宽 imageNewagecopyresampled($imageNew,$logoimageNew,$picNameimageNewageInfo[0]-$logoimageNewageInfo[0],$picNameimageNewageInfo[1]-$logoimageNewageInfo[1],0,0,$logoimageNewageInfo[0],$logoimageNewageInfo[1],$logoimageNewageInfo[0],$logoimageNewageInfo[1]); //输出图像(根据源图像的类型,输出为对应的类型) $picimageNewageInfo = pathimageNewageInfo($picName);//解析源图像的名字和路径信息 $newpicName= $picimageNewageInfo["dirname"]."/".$pre.$picimageNewageInfo["basename"]; switch($picNameimageNewageInfo[2]){ case 1: imageNewagegif($imageNew,$newpicName); break; case 2: imageNewagejpeg($imageNew,$newpicName); break; case 3: imageNewagepng($imageNew,$newpicName); break; } //释放图片资源 imageNewagedestroy($imageNew); imageNewagedestroy($logoimageNew); //返回结果 return $newpicName; } //测试 //echo imageNewageUpdateLogo("./imageNewages/leyangjun.jpg","./imageNewages/logo.png"); //对应添加你的图片,和你的logo水印图片 OK

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

PHP tidak mati, tetapi sentiasa menyesuaikan diri dan berkembang. 1) PHP telah menjalani beberapa lelaran versi sejak tahun 1994 untuk menyesuaikan diri dengan trend teknologi baru. 2) Ia kini digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan bidang lain. 3) Php8 memperkenalkan pengkompil JIT dan fungsi lain untuk meningkatkan prestasi dan pemodenan. 4) Gunakan OPCACHE dan ikut piawaian PSR-12 untuk mengoptimumkan prestasi dan kualiti kod.

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.

Dalam PHP, sifat sesuai untuk situasi di mana penggunaan semula kaedah diperlukan tetapi tidak sesuai untuk warisan. 1) Ciri membolehkan kaedah multiplexing dalam kelas untuk mengelakkan pelbagai kerumitan warisan. 2) Apabila menggunakan sifat, anda perlu memberi perhatian kepada konflik kaedah, yang dapat diselesaikan melalui alternatif dan sebagai kata kunci. 3) Tua yang berlebihan harus dielakkan dan tanggungjawab tunggalnya harus dikekalkan untuk mengoptimumkan prestasi dan meningkatkan pemeliharaan kod.

Kontena Suntikan Ketergantungan (DIC) adalah alat yang menguruskan dan menyediakan kebergantungan objek untuk digunakan dalam projek PHP. Manfaat utama DIC termasuk: 1. Decoupling, membuat komponen bebas, dan kod itu mudah dikekalkan dan diuji; 2. Fleksibiliti, mudah untuk menggantikan atau mengubah suai kebergantungan; 3. Keseluruhan, mudah untuk menyuntik objek mengejek untuk ujian unit.

SplfixedArray adalah pelbagai saiz tetap dalam PHP, sesuai untuk senario di mana prestasi tinggi dan penggunaan memori yang rendah diperlukan. 1) Ia perlu menentukan saiz apabila membuat untuk mengelakkan overhead yang disebabkan oleh pelarasan dinamik. 2) Berdasarkan pelbagai bahasa C, secara langsung mengendalikan memori dan kelajuan akses cepat. 3) Sesuai untuk pemprosesan data berskala besar dan persekitaran sensitif memori, tetapi ia perlu digunakan dengan berhati-hati kerana saiznya tetap.

PHP mengendalikan fail muat naik melalui pembolehubah fail $ \ _. Kaedah untuk memastikan keselamatan termasuk: 1. Semak kesilapan muat naik, 2. Sahkan jenis dan saiz fail, 3. Mencegah penindasan fail, 4. Pindahkan fail ke lokasi storan tetap.

Dalam JavaScript, anda boleh menggunakan NullcoalescingOperator (??) dan NullcoalescingAssignmentOperator (?? =). 1.? Menerapkan semula operan pertama yang tidak berselisih atau tidak ditentukan. 2.?? Pengendali ini memudahkan logik kod, meningkatkan kebolehbacaan dan prestasi.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Dreamweaver CS6
Alat pembangunan web visual