上传图片添加水印???
上传图片添加水印???
搞了个上传图片的函数(经过测试可以上传图片,这个没有问题)
现在想上传图片时添加水印图片(一个小gif)
上传图片时,网页提示函数imagecopymerge()报错,不知道哪里出了问题,大家帮我看看
上传图片函数代码:
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> /* $files为上传的图片文件 $folder为上传图片的文件夹 */ function uploads($files,$folder) { //取得图片的后缀名 $knamearray=explode(".",$_FILES["upfile"]["name"]); $kname=$knamearray[count($knamearray)-1]; //设置图片文件名为系统时间 $filename=date('YmdHis'); $filenames=$filename.$code.".".$kname; $upfile=$folder."/".$filenames; //上传图片 move_uploaded_file($files,$upfile); //添加水印图片开始了…… $im=imagecreatefromgif("wimages/logo.gif"); //logo.gif图片的尺寸为120*45 imagecopymerge($upfile,$im,0,0,0,0,120,45,80); //现在提示这句有问题。。。 return $filenames;//回传图片文件名 }
------解决方案--------------------
$im=imagecreatefromgif("wimages/logo.gif"); //logo.gif图片的尺寸为120*45
最好把路径换成相对的路径;
imagecopymerge($upfile,$im,0,0,0,0,120,45,80); //现在提示这句有问题。。。
楼主能不能帮我解释一下imagecopymerge的各个参数的意义啊
------解决方案--------------------
------解决方案--------------------
可以这样写:
$descrition ="/upload/imag_1123323.jpg";//这个是要加水印图片的路径和文件名;
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);//创建新建一个真彩色图像
//$image_size为要加水印的图片大小信息的数组;
$simage=imagecreatefromgif($destination); //把要加水印的图片已gif格式读入;
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
//把要加水印的拷贝到创建的真彩色图像上;
imagedestroy($simage); //销毁
$simage1 = imagecreatefromgif("wimages/logo.gif")// 这个路径估计要弄对
//把水印图片读入
imagecopy($nimage,$simage1,0,0,0,0,85,15); //把水印也拷贝到上面;
imagejpeg($nimage,$descrtion); //把三个图片叠加得到的新图片保存为原来没有水印的图片
imagedestroy($nimage); //销毁
imagedestroy($simage);
------解决方案--------------------
最近我用网上的来修改,弄了一个,做成类,,
用这个类,可以做出多张图片上传。。。。
- PHP code
class upimg{ //该类用来实现上传$uptypes数组内类型的图片,可以通过setWaterMark()启用设置水印 <br> <br> /** <br> * <br> * 则在图片上加水印; <br> * 外部通过访问$msg ,$img_width, $img_height ,$save_dir,$img_size变量 <br> * 获取图片在上传过程中出现的错误,和图片上传后保存的路径,图片大小等信息; <br> */ <br> private $uptypes = array('image/gif','image/jpg','image/jpeg','image/png','image/pjpeg');//'image/bmp','image/x-png'); <br> private $max_file_size = 200000; <br> private $dir_folder = "../imageupload/"; <br> private $water_mark = 1; <br> private $water_type = 1; <br> private $water_str = "http://www.516ya.cn"; <br> private $water_img = "xplore.gif"; <br> private $create_water= false; <br> private $overwrite = false; <br> <br> public $msg=""; <br> public $img_width=0; <br> public $img_height=0; <br> public $save_dir=""; <br> public $img_size=0; <br> public $sucess =false; <br> <br> function setWaterMark(){ <br> $this->create_water = true; <br> } <br> <br> function startUpload($files){ <br> <br> <br> if(!is_uploaded_file($files['tmp_name'])) <br> { <br> $this->msg.="图片不存在!--";

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl

TomakePHPapplicationsfaster,followthesesteps:1)UseOpcodeCachinglikeOPcachetostoreprecompiledscriptbytecode.2)MinimizeDatabaseQueriesbyusingquerycachingandefficientindexing.3)LeveragePHP7 Featuresforbettercodeefficiency.4)ImplementCachingStrategiessuc

ToimprovePHPapplicationspeed,followthesesteps:1)EnableopcodecachingwithAPCutoreducescriptexecutiontime.2)ImplementdatabasequerycachingusingPDOtominimizedatabasehits.3)UseHTTP/2tomultiplexrequestsandreduceconnectionoverhead.4)Limitsessionusagebyclosin

Dependency injection (DI) significantly improves the testability of PHP code by explicitly transitive dependencies. 1) DI decoupling classes and specific implementations make testing and maintenance more flexible. 2) Among the three types, the constructor injects explicit expression dependencies to keep the state consistent. 3) Use DI containers to manage complex dependencies to improve code quality and development efficiency.

DatabasequeryoptimizationinPHPinvolvesseveralstrategiestoenhanceperformance.1)Selectonlynecessarycolumnstoreducedatatransfer.2)Useindexingtospeedupdataretrieval.3)Implementquerycachingtostoreresultsoffrequentqueries.4)Utilizepreparedstatementsforeffi


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SublimeText3 Chinese version
Chinese version, very easy to use

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Dreamweaver Mac version
Visual web development tools
