两种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 相关文章推荐
Smarty模板快速入门
Jan 04 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
php四种基础算法代码实例
Oct 29 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
php+MySQL判断update语句是否执行成功的方法
Aug 28 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
php语言的7种基本的排序方法
Dec 28 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
smarty中改进truncate使其支持中文的方法
May 30 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 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
无限级别菜单的实现
2006/10/09 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js实现微信分享代码
2020/10/11 Javascript
Node.js模块封装及使用方法
2016/03/06 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
Python 学习笔记
2008/12/27 Python
跟老齐学Python之正规地说一句话
2014/09/28 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
python如何删除文件中重复的字段
2019/07/16 Python
利用Python检测URL状态
2019/07/31 Python
pyinstaller打包程序exe踩过的坑
2019/11/19 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
思想政治自我鉴定
2013/10/06 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
消夏晚会主持词
2015/06/30 职场文书
《日月潭》教学反思
2016/02/20 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript