两种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 相关文章推荐
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 PHP
关于PHP语言构造器介绍
Jul 08 PHP
php的慢速日志引起的Mysql错误问题分析
May 13 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
Laravel框架查询构造器简单示例
May 08 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
php实现简单洗牌算法
2013/06/18 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
php微信开发自定义菜单
2016/08/27 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
PHP函数积累总结
2019/03/19 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue实现计算器计算效果
2020/08/17 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
图解Python变量与赋值
2018/04/03 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python scatter函数用法实例详解
2020/02/11 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
python 实现端口扫描工具
2020/12/18 Python
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
公司董事长岗位职责
2014/06/08 职场文书
网络营销计划书
2015/01/17 职场文书
毕业生个人自荐书
2015/03/05 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
python中mongodb包操作数据库
2022/04/19 Python
Nginx 常用配置
2022/05/15 Servers