温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中怎么给图片加水印

发布时间:2021-06-29 17:41:25 来源:亿速云 阅读:114 作者:Leah 栏目:编程语言

本篇文章为大家展示了PHP中怎么给图片加水印,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

PHP给图片加水印的具体代码如下:

<?php   /******************************************************************************    参数说明:   $max_file_size  : 上传文件大小限制, 单位BYTE   $destination_folder : 上传文件路径   $watermark   : 是否附加水印(1为加水印,其他为不加水印);    使用说明:   1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;号去掉,因为我们要用到GD库;   2. 将extension_dir =改为你的php_gd2.dll所在目录;   ******************************************************************************/    //上传文件类型列表   $uptypes=array(       'image/jpg',       'image/jpeg',       'image/png',       'image/pjpeg',       'image/gif',       'image/bmp',       'image/x-png'   );    $max_file_size=2000000;     //上传文件大小限制, 单位BYTE   $destination_folder="uploadimg/"; //上传文件路径   $watermark=1;      //是否附加水印(1为加水印,其他为不加水印);   $watertype=1;      //水印类型(1为文字,2为图片)   $waterposition=1;     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);   $waterstring="http://www.xplore.cn/";  //水印字符串   $waterimg="xplore.gif";    //水印图片   $imgpreview=1;      //是否生成预览图(1为生成,其他为不生成);   $imgpreviewsize=1/2;    //缩略图比例   ?>   <html>   <head>   <title>ZwelL图片上传程序</title>   <style type="text/css">   <!--   body   {        font-size: 9pt;   }   input   {        background-color: #66CCFF;        border: 1px inset #CCCCCC;   }   -->   </style>   </head>    <body>   <form enctype="multipart/form-data" method="post" name="upform">     上传文件:     <input name="upfile" type="file">     <input type="submit" value="上传"><br>     允许上传的文件类型为:<?=implode(', ',$uptypes)?>   </form>    <?php   if ($_SERVER['REQUEST_METHOD'] == 'POST')   {       if (!is_uploaded_file($_FILES["upfile"][tmp_name]))       //是否存在文件       {            echo "图片不存在!";            exit;       }        $file = $_FILES["upfile"];       if($max_file_size < $file["size"])       //检查文件大小       {           echo "文件太大!";           exit;       }        if(!in_array($file["type"], $uptypes))       //检查文件类型       {           echo "文件类型不符!".$file["type"];           exit;       }        if(!file_exists($destination_folder))       {           mkdir($destination_folder);       }        $filename=$file["tmp_name"];       $image_size = getimagesize($filename);       $pinfo=pathinfo($file["name"]);       $ftype=$pinfo['extension'];       $destination = $destination_folder.time().".".$ftype;       if (file_exists($destination) && $overwrite != true)       {           echo "同名文件已经存在了";           exit;       }        if(!move_uploaded_file ($filename, $destination))       {           echo "移动文件出错";           exit;       }        $pinfo=pathinfo($destination);       $fname=$pinfo[basename];       echo " <font color=red>已经成功上传</font><br>文件名:  <font color=blue>".$destination_folder.$fname."</font><br>";       echo " 宽度:".$image_size[0];       echo " 长度:".$image_size[1];       echo "<br> 大小:".$file["size"]." bytes";        if($watermark==1)       {           $iinfo=getimagesize($destination,$iinfo);           $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);           $white=imagecolorallocate($nimage,255,255,255);           $black=imagecolorallocate($nimage,0,0,0);           $red=imagecolorallocate($nimage,255,0,0);           imagefill($nimage,0,0,$white);           switch ($iinfo[2])           {               case 1:               $simage =imagecreatefromgif($destination);               break;               case 2:               $simage =imagecreatefromjpeg($destination);               break;               case 3:               $simage =imagecreatefrompng($destination);               break;               case 6:               $simage =imagecreatefromwbmp($destination);               break;               default:               die("不支持的文件类型";               exit;           }            imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);           imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);            switch($watertype)           {               case 1:   //加水印字符串               imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);               break;               case 2:   //加水印图片               $simage1 =imagecreatefromgif("xplore.gif";               imagecopy($nimage,$simage1,0,0,0,0,85,15);               imagedestroy($simage1);               break;           }            switch ($iinfo[2])           {               case 1:               //imagegif($nimage, $destination);               imagejpeg($nimage, $destination);               break;               case 2:               imagejpeg($nimage, $destination);               break;               case 3:               imagepng($nimage, $destination);               break;               case 6:               imagewbmp($nimage, $destination);               //imagejpeg($nimage, $destination);               break;           }            //覆盖原上传文件           imagedestroy($nimage);           imagedestroy($simage);       }        if($imgpreview==1)       {       echo "<br>图片预览:<br>";       echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);       echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">";       }   }   ?>   </body>   </html>

上述内容就是PHP中怎么给图片加水印,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI