首页
登录 | 注册

PHP给图片添加图片水印

PHP

涉及到的函数:

1、file_get_contents():用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。

2、list():list() 函数用于在一次操作中给一组变量赋值。

3、imagecreatefromstring():根据获取的信息载入图像

4、imagecopymerge():图片合成函数

前端页面代码:

<html>
<head>
<meta charset="UTF-8">
<title>给上传的图片添加水印</title>
</head>
<body>
<form action="shuiyin.php" method="post" enctype="multipart/form-data">
<input  name="img" type="file">
<input type="submit">
</form>
</body>
</html>

后端PHP代码:

header("Content-type:text/html;charset=utf-8");
if(isset($_FILES['img']['tmp_name'])){
    
    if($_FILES['img']['type'] !== 'image/jpeg'){
        echo '上传文件不符合要求,必须是图片!';
    }else{
        //保存图片
        move_uploaded_file($_FILES['img']['tmp_name'],'uploads/'.time().'.jpg');
        //获取上传图片和水印图的宽高
        $img = 'uploads/'.time().'.jpg';
        list($img1x,$img1y) = getimagesize($img);
        $shuiyin = 'uploads/shuiyin.jpg';
        list($img2x,$img2y) = getimagesize($shuiyin);
        //将图片生成实例
        $i = imagecreatefromstring(file_get_contents($img));
        $s = imagecreatefromstring(file_get_contents($shuiyin));
        //图片合成
        imagecopymerge($i,$s,10,10,0,0,$img2x,$img2y,30);
        header("Content-type:image/jpeg");
        imagejpeg($i);
    }
}else{
    echo "<script>alert('文件未上传!')</script>";
}

合成后图片:

PHP给图片添加图片水印

如果想让水印出现在右下角或者下方,调整imagecopymerge函数参数即可。

总结:

先获取上传图片的宽高、及图片的实质信息(通过file_get_contents()获取),之后通过PHP函数imagecopymerge将图片进行合成。


相关文章

  • 页面性能优化-原生JS实现图片懒加载
         在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况.我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片.所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片.这种加载图片的 ...
  • 博客园美化教程第二篇----极致个性化你的专属博客(为博客添加背景音乐插件,调整页面布局等)
    阅读目录: 1. 前言 2. 定制自己的博客 0. 美化整体效果 1. 准备工作 2. 添加博客背景音乐插件 3. 为博客文章内容主体定制漂亮的显示样式 4. 公告栏日历样式定制 5. 待续... 3. 后语 博客园美化教程大集合——极致个 ...
  • 学了很多乱七杂八的东西,但是依然停留在前端,在工作中一直和后端交流,但是不太了解数据库是怎么回事,为了加强学习,准备学习一些关于数据库相关的东西. 说起数据库可能会有很多很多,SQLServer.Oracle.Sybase等等等,还有就是要 ...
  • 补习系列(20)-大话 WebSocket 与 &quot;尬聊&quot;的实现
    目录 一.聊聊 WebSocket 二.Stomp 是个什么鬼 三.SpringBoot 整合 WebSocket A. 引入依赖 B. WebSocket 配置 C. 控制器 D. 前端实现 四.参考文档 一.聊聊 WebSocket 从 ...
  • 《k8s 源码分析》- Custom Controller 之 Informer
    Custom Controller 之 Informer 概述 架构概览 reflector - List & Watch API Server Reflector 对象 ListAndWatch watchHandler - ad ...
  • LSTM实现中文文本情感分析
    1. 背景介绍 文本情感分析是在文本分析领域的典型任务,实用价值很高.本模型是第一个上手实现的深度学习模型,目的是对深度学习做一个初步的了解,并入门深度学习在文本分析领域的应用.在进行模型的上手实现之前,已学习了吴恩达的机器学习和深度学习的 ...

2019 cecdns.com webmaster#cecdns.com
12 q. 0.077 s.
京ICP备10005923号