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>";
}
合成后图片:

如果想让水印出现在右下角或者下方,调整imagecopymerge函数参数即可。
总结:
先获取上传图片的宽高、及图片的实质信息(通过file_get_contents()获取),之后通过PHP函数imagecopymerge将图片进行合成。
PHP给图片添加图片水印的更多相关文章
- php 图片添加文字水印 以及 图片合成(微信快码传播)
1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...
- 利用php给图片添加文字水印--面向对象与面向过程俩种方法的实现
1: 面向过程的编写方法 //指定图片路径 $src = '001.png'; //获取图片信息 $info = getimagesize($src); //获取图片扩展名 $type = image ...
- Swift - 给图片添加图片水印(图片上绘制另一张图,并可设透明度)
我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可. 1,效果图如下: (在图片左上角添加了一个半透明的logo图片) 2,为 ...
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...
- C#图片添加文字水印
/// <summary> /// 给图片添加文字水印 /// </summary> /// <param name="img">图片</ ...
- php图片添加文字水印方法汇总
方法一: <?php header("content-type:text/html;charset=utf-8"); //指定图片路径 $src = "img/a. ...
- php给图片添加文字水印方法汇总
在php中要给图片加水印我们需要给php安装GD库了,这里我们不介绍GD库安装,只介绍怎么利用php给图片添加文字水印的4种方法的汇总.有需要的小伙伴可以参考下. 1: 面向过程的编写方法 1 2 3 ...
- php使用GD库实现图片水印和缩略图——给图片添加文字水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- PHP给图片添加文字水印实例
PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图,自定义设置水印背景色.文字颜色.字体等. 水印类water.class.php var $Path = "./"; / ...
- php使用GD库实现图片水印和缩略图——给图片添加图片水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
随机推荐
- Python学习:11.Python装饰器讲解(二)
回顾 上一节我们进行了Python简单装饰器的讲解,但是python的装饰器还有一部分高级的使用方式,这一节就针对python装饰器高级部分进行讲解. 为一个函数添加多个装饰器 今天,老板又交给你一个 ...
- 天津Uber优步司机奖励政策(12月21日到12月27日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 3551: [ONTAK2010]Peaks加强版
3551: [ONTAK2010]Peaks加强版 https://www.lydsy.com/JudgeOnline/problem.php?id=3551 分析: kruskal重构树 + 倍增 ...
- 使用AutoFac实现依赖注入(封装一个注册类)
public class AutoFacBootStrapper { public static void CoreAutoFacInit() { var builder = new Containe ...
- substr是不安全的
今天遇到一个问题,数据库中保存的内容通过php在页面无法显示,如果将内容换行或加个空格或者随便加点其他内容就能正常显示. 非常的诡异,显示的内容是通过截取得到的.代码非常简单 substr($pMar ...
- 深入理解javascript原型链
在javascript中原型和原型链是一个很神奇的东西,对于大多数人也是最难理解的一部分,掌握原型和原型链的本质是javascript进阶的重要一环.今天我分享一下我对javascript原型和原型链 ...
- 180619-Yaml文件语法及读写小结
Yaml文件小结 Yaml文件有自己独立的语法,常用作配置文件使用,相比较于xml和json而言,减少很多不必要的标签或者括号,阅读也更加清晰简单:本篇主要介绍下YAML文件的基本语法,以及如何在Ja ...
- Unity编辑器 - Rigidbody动力学Bake到AnimationClip
Unity编辑器 - Rigidbody动力学Bake到AnimationClip Unity文档移动平台优化部分提到Physics对CPU的消耗较大 将动力学的特效如破碎等Bake成动画也是优化性能 ...
- spark集群安装部署
通过Ambari(HDP)或者Cloudera Management (CDH)等集群管理服务安装和部署在此不多介绍,只需要在界面直接操作和配置即可,本文主要通过原生安装,熟悉安装配置流程. 1.选取 ...
- java核心技术 笔记
一 . 总览 1. 类加载机制:jdk内嵌的class_loader有哪些,类加载过程.--后面需要补充 2. 垃圾收集基本原理,常见的垃圾收集器,各自适用的场景.--后面需要补充 3. 运行时动态编 ...