两种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中使用Oracle数据库(1)
Oct 09 PHP
PHP 柱状图实现代码
Dec 04 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
用PHP提取中英文词语以及数字的首字母的方法介绍
Apr 23 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
Jun 06 PHP
php实现图片缩放功能类
Dec 18 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
thinkphp常见路径用法分析
Dec 02 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
php解决约瑟夫环算法实例分析
Sep 30 PHP
PHP底层运行机制与工作原理详解
Jul 31 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
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php 字符串替换的方法
2012/01/10 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
javascript History对象原理解析
2020/02/17 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
基于python修改srt字幕的时间轴
2020/02/03 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
财务部绩效考核方案
2014/05/04 职场文书
房屋登记授权委托书范本
2014/10/09 职场文书
暑期工社会实践报告
2015/07/13 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
MongoDB使用场景总结
2022/02/24 MongoDB
vue打包时去掉所有的console.log
2022/04/10 Vue.js
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL