里面有个STXINGKA.TTF,这是个字体文件
~~~
<?php
/**
*给一个文件夹的所有图片加水印
*获取目录中所有目录和文件
*@param string $dir 目录路径
*/
function getAllFile($dir,$fontfile,$text){
//打开目录句柄
$handle = opendir($dir);
//读取目录
while(($fileName = readdir($handle)) !== false){
//过滤'.'和'..'和文件
if($fileName == '.'||$fileName == '..'){
continue;
}
$newFile = $dir.'/'.$fileName;
//转码
$newFile = iconv('gbk','utf-8',$newFile);
if(is_dir($newFile)){
// echo $newFile.'<br>';
// exit();
getAllFile($newFile,$fontfile,$text);
}else{
//echo $fileName.'<br>';
waterMark($newFile,$fontfile,$text);
}
}
closedir($handle);
}
/**
* 给图片添加水印
* @param string $filename 要添加水印图片的路径
* @param string $fontfile 使用的 TrueType 字体的路径
* @param string $text 水印文本内容
* @param float $size 水印字体的大小,默认是50
* @param float $angle 水印字体的旋转角度,默认是30度
* @return string $tmpName 生成的水印图片的路径
*/
function waterMark($filename,$fontfile,$text,$size = 50,$angle = 20)
{
$info = getimagesize($filename);
$mime = explode('/',$info['mime']);
//获取图片的宽度
$imgWidth = $info[0];
//获取图片的高度
$imgHeight = $info[1];
//水印文字位置左上角的横坐标设置为图片宽度的0.3
$x = 0.25 * $imgWidth;
//水印文字位置左上角的纵坐标设置为图片高度的0.45
$y = 0.45 * $imgHeight;
//获取图片后缀
$ext = array_pop($mime);
//构建创建画布的函数名
$funName = 'imagecreatefrom'.$ext;
//创建一个画布
$img = $funName($filename);
//生成一个有透明度的颜色,最后一个参数表示透明度取值为0~127,127位完全透明
$color = imagecolorallocatealpha($img,0,0,255,90);
//向图片是写文字
//imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
//循环向图片添加水印
for ($i=0,$y = 0; $y < $imgHeight; $i++) {
$y = $i * $size * 2 + 0.1 * $imgHeight;
imagettftext($img,$size,$angle,$x,$y,$color,$fontfile,$text);
}
if (!is_dir('./waterMarkImage')) {
mkdir('./waterMarkImage');
}
//拼接图片保存路径
$tmpName = explode('/',$filename);
$tmpName = './waterMarkImage/'.'mark_'.$tmpName[count($tmpName) - 1];
$funName = 'image'.$ext;
if ($ext == 'jpeg') {
//保存添加水印的图片
$funName($img,$tmpName,100);
}else{
$funName($img,$tmpName);
}
//将图片显示在网页
//header('Content-type:image/'.$ext);
//$funName($img);
// 释放资源
//imagedestroy($img);
return $tmpName;
}
//测试
getAllFile('./goods_img','./STXINGKA.TTF','天猫正品');
?>
~~~
- OAuth
- 简介
- 步骤
- 单点登录
- .user.ini
- 时间转换为今天昨天前天几天前
- 获取ip接口
- 协程
- 概念
- yield-from && return-values
- 协程与阻塞的思考
- 中间件
- mysqli异步与php的协程
- 代码片段
- pdo 执行的sql语句
- 二进制安全
- 捕捉异常中断
- global
- 利用cookie模拟登陆
- 解析非正常json
- 简单的对称加密算法
- RSA 加密
- 过滤掉emoji表情
- 判断远程图片是否存在
- 一分钟限制请求100次
- 文件处理
- 多文件上传
- 显示所有文件
- 文件下载和上面显示所有文件配合
- 文件的删除,统计,存数组等
- 图片处理
- 简介
- 验证码
- 图片等比缩放
- 批量添加水印
- beanstalkd
- 安装
- 使用
- RabbitMQ
- 简介
- debain安装
- centos安装
- 常用方法
- 入门
- 工作队列
- 订阅,发布
- 路由
- 主题
- 远程调用RPC
- 消息中间件的选型
- .htaccess
- isset、empty、if区别以及0、‘’、null
- php各版本
- php7.2 不向后兼容的改动
- php中的各种坑
- php7改变
- php慢日志
- 邮件
- PHPMailer实现发邮件
- 验证邮件地址真实性
- 文件下载
- FastCgi 与 PHP-fpm 之间的关系
- openssl 加解密
- 反射
- 钩子方法
- 查找插件
- opcode
- opcache使用
- opcache优化
- 分布式一致性hash算法
- 概念
- 哈希算法好坏的四个定义
- php实现
- java实现
- 数组
- jwt
- jwt简介
- 单点登录
- phpize
- GeoIP扩展
- php无法获得https网页内容的解决方案
- homestead运行的脚本
- Unicode和Utf-8转换
- php优化
- kafka
- fpm配置
- configure配置详解