两种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 相关文章推荐
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
php 字符串函数收集
Mar 29 PHP
php数字转汉字代码(算法)
Oct 08 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
php实现文件下载实例分享
Jun 02 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
PHP图片加水印实现方法
May 06 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 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
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
Python入门学习之字符串与比较运算符
2015/10/12 Python
python实现识别相似图片小结
2016/02/22 Python
Python中的变量和作用域详解
2016/07/13 Python
解决uWSGI的编码问题详解
2017/03/24 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
python字符串的方法与操作大全
2018/01/30 Python
python多维数组切片方法
2018/04/13 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
实习护理工作自我评价
2013/09/25 职场文书
门卫人员岗位职责
2013/12/24 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
群众路线剖析材料
2014/09/30 职场文书
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫