两种php给图片加水印的实现代码


Posted in PHP onApril 18, 2020

PHP最简单的加水印方法

<?php
$img = imagecreatefromjpeg($filename);
$logo = imagecreatefromjpeg($filename);
/*imagecraetefromjpeg-由文件或URL创建一个新图像
imagecreatefromjpeg(string $filename)
如果启用了fopen包装器,URL可以作为文件名*/
imagecopy($img,$logo,15,15,0,0,$width,$height);
/*imagecopy($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h)
$dst_im是背景图像,就是需要添加水印的图片
$src_im是水印图片;$dst_x,#dst_y需要把水印放到背景图片的(x,y)坐标;
$src_x,$src_y是截取水印的图片的开始坐标
$width,$height是截取的图片的就是水印的长度和宽度*/
$url = 'http://www.stchat.cn/data/attachment/forum/201506/12/100759pidbdaydh8dy7iby.jpg';
$content = file_get_contents($url);//把url写入到content这个变量里面
/*file_get_contents--将整个文件读入到一个字符串*/
$filename = 'tmp.jpg';
file_put_contents($filename,$content);
//把所有内容放到filename这个变量里面,第一个存放的是背景图片
/*file_put_contents(string $filename,mixed $data)将一个字符串写入一个文件
filename要被写入数据的文件名
data要写入的数据,类型可以是string,array或者是stream资源*/
$url = '';
file_put_contents('logo.png',file_get_contents($url));
//第二个是水印的图片
$img = imagecreatefromjpeg($filename);
$logo = imagecreatefrompng('logo.png');
$size = getimagesize('logo.png');
/*getimagesize()获得图像大小*/
imagecopy($img,$logo,15,15,0,0,$size[0],$size[1]);
header("centent-type:image/jpeg");
imagejpeg(img);
?>

php给图片加文字水印

<?php
/*给图片加文字水印的方法*/
$dst_path = 'http://f4.topitme.com/4/15/11/1166351597fe111154l.jpg';
$dst = imagecreatefromstring(file_get_contents($dst_path));
/*imagecreatefromstring()--从字符串中的图像流新建一个图像,返回一个图像标示符,其表达了从给定字符串得来的图像
图像格式将自动监测,只要php支持jpeg,png,gif,wbmp,gd2.*/
 
$font = './t1.ttf';
$black = imagecolorallocate($dst, 0, 0, 0);
imagefttext($dst, 20, 0, 10, 30, $black, $font, 'Hello world!');
/*imagefttext($img,$size,$angle,$x,$y,$color,$fontfile,$text)
$img由图像创建函数返回的图像资源
size要使用的水印的字体大小
angle(角度)文字的倾斜角度,如果是0度代表文字从左往右,如果是90度代表从上往下
x,y水印文字的第一个文字的起始位置
color是水印文字的颜色
fontfile,你希望使用truetype字体的路径*/
list($dst_w,$dst_h,$dst_type) = getimagesize($dst_path);
/*list(mixed $varname[,mixed $......])--把数组中的值赋给一些变量
像array()一样,这不是真正的函数,而是语言结构,List()用一步操作给一组变量进行赋值*/
/*getimagesize()能获取到什么信息?
getimagesize函数会返回图像的所有信息,包括大小,类型等等*/
switch($dst_type){
 case 1://GIF
  header("content-type:image/gif");
  imagegif($dst);
  break;
 case 2://JPG
  header("content-type:image/jpeg");
  imagejpeg($dst);
  break;
 case 3://PNG
  header("content-type:image/png");
  imagepng($dst);
  break;
 default:
  break;
 /*imagepng--以PNG格式将图像输出到浏览器或文件
 imagepng()将GD图像流(image)以png格式输出到标注输出(通常为浏览器),或者如果用filename给出了文件名则将其输出到文件*/
}
imagedestroy($dst);
?>

以上就是php给图片加水印的实现代码,希望大家可以熟练掌握。

PHP 相关文章推荐
分页显示Oracle数据库记录的类之一
Oct 09 PHP
PHP 图片上传实现代码 带详细注释
Apr 29 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
php中的观察者模式简单实例
Jan 20 PHP
php计算一个文件大小的方法
Mar 30 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
php简单生成随机数的方法
Jul 30 #PHP
php简单判断文本编码的方法
Jul 30 #PHP
php实现的数字验证码及数字运算验证码
Jul 30 #PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 #PHP
PHP实现批量修改文件后缀名的方法
Jul 30 #PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 #PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 #PHP
You might like
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
JavaScript中this详解
2015/09/01 Javascript
微信企业号开发之微信考勤Cookies的使用
2015/09/11 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
loading动画特效小结
2017/01/22 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
[51:43]OG vs LGD 2018国际邀请赛淘汰赛BO3 第五场 8.26
2018/08/30 DOTA
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python语言基本语句用法总结
2019/06/11 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
日本语毕业生自荐信
2014/02/01 职场文书
学生干部学习的自我评价
2014/02/18 职场文书
实习会计求职自荐信范文
2014/03/10 职场文书
警校毕业生自我评价
2014/04/06 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
不同意离婚答辩状
2015/05/22 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
Django Paginator分页器的使用示例
2021/06/23 Python
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
linux下安装redis图文详细步骤
2021/12/04 Redis