文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PHP中怎么给图片加水印

2023-06-17 19:53

关注

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

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

<?php       //上传文件类型列表   $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="https://file.lsjlt.com/upload/202306/14/b51ar53odtr.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中怎么给图片加水印,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯