PHP 使用gd库给图片加图片水印,文字水印,并返回路径
//图片水印
$mark_filename = './02.jpg';
//获取图片信息
$info = getimagesize($mark_filename); //获取图片的后缀
$type = image_type_to_extension($info[2], false);
//拼接图片资源句柄函数
$func = 'imagecreatefrom' . $type;
//创建图片资源句柄
$images = $func($mark_filename); //裁剪图片的大小为原图的4分之一
$w = $info[0] / 4;
$h = $info[1] / 4;
//在内存中创建画板
$mark_image = imagecreatetruecolor($w, $h); //裁剪
imagecopyresampled($mark_image, $images, 0, 0, 0, 0, $w, $h,$info[0],$info[1]); //销毁内存
imagedestroy($images); //需要加水印的图片
$filename = '11.jpg';
//获取图片信息
$mark = getimagesize($filename);
//获取图片后缀
$mark_type = image_type_to_extension($mark[2], false); //创建图片资源句柄
$mark_func = 'imagecreatefrom' . $mark_type;
$image = $mark_func($filename); //合并,添加水印图片
imagecopymerge($image, $mark_image, 20, 30, 0, 0, $w, $h, 50); //销毁内存
imagedestroy($mark_image); //文字水印
$font = "MSYH.TTF";
$content = "this 文字";
//设置字体的颜色及透明图
$col = imagecolorallocatealpha($image, 45, 56, 123, 50);
//将文字写入图片
imagettftext($image, 20, 30, 400, 100, $col, $font, $content); //图片输出函数拼接
$outFunc = 'image'.$type; //设置文件路径
$ml = date('Ymd', time());//目录名称
$url = $ml.'/'.time().'.png';//存储的路径 //判断目录是否存在
if (file_exists($ml) == false){
//创建目录,并且设置最高权限
if (mkdir($ml, 0700, true)){
echo '创建目录成功';
}else{
echo '创建目录失败';
}
} //判断是http还是https
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
//全路径
$urls = $http_type . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . $url; //生成图片
if ($outFunc($image,$url)){
var_dump('压缩图片成功,图片路径为:'.$urls);
}else{
var_dump('压缩图片失败');
}
参考文章:https://blog.csdn.net/Just_shunjian/article/details/78392628
PHP 使用gd库给图片加图片水印,文字水印,并返回路径的更多相关文章
- php 图片加水印文字水印
/*给图片加文字水印的方法*/ $dst_path = 'http://f4.topitme.com/4/15/11/1166351597fe111154l.jpg';//保证路径正确 $dst = ...
- php --图片加图片水印
最近在做一个视频网站需要视频有一个封面图片,但是不能是普通的图片,能让别人一眼看出来是 视频,所以我就在图片上面加了视频播放器的那种水印,具体代码如下: <?php/** * 图片加水印(适用于 ...
- 搞笑入群二维码在线生成源码 php图片合成并添加文字水印
在凤凰网看到一篇文章:微信群二维码也能“整人”,99%的好友会中招!感觉挺好玩,所以自己也想做一个! 冷静分析
- php使用GD库实现图片水印和缩略图——封装成类
学完了如何使用GD库来实现对图片的各种处理,那么我们可以发现,不管哪种方法,都有相似之处,如果我们把这些相似的地方和不相似的地方都封装成类,这样就可以提升代码的速度,而且节省了很多时间,废话不多说,来 ...
- php文字水印和php图片水印实现代码(二种加水印方法)
文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件.效果图如下: $dst_path = 'dst.jpg';//创建图片的实例$dst = imag ...
- php文字水印和php图片水印实现代码
本文章向码农们介绍php文字水印和php图片水印实现代码,需要的码农可以参考一下. php 文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件. 实现 ...
- php 使用GD库上传图片以及创建缩略图
php 使用GD库上传图片以及创建缩略图 GD库是PHP进行图象操作一个很强大的库. 先在php.ini里增加一行引用:extension=php_gd2.dll 重启apache.做一个测试页 ...
- 【代码学习】PHP中GD库的使用
PHP--GD库 ================================================ 一.支持: 需要php支持GD库 二.作用: 验证码.水印.缩放等 三.绘画步骤: ...
- GD库知识点
GD库:PHP的一个扩展库,主要用于绘制动态图,根据数据动态响应的图片 如统计图 验证码 其他的用途如:处理已有图像 图片的缩放 裁剪 图片水印 文字水印 1.安装GD库 2.画图步骤:创建背景图像( ...
随机推荐
- Codeforces Round #427 (Div. 2) E. The penguin's game (交互题,二进制分组)
E. The penguin's game time limit per test: 1 second memory limit per test: 256 megabytes input: stan ...
- java的回收机制
在java语言中,判断一块内存空间是否符合垃圾收集器收集标准的标准只有两个: 1.给对象赋值为null,以下没有调用过. 2.给对象赋了新的值,重新分配了内存空间.
- OpenCV(c++)-1 安装和配置OpenCV4.4(Windows+visual studio 2019)
@ 目录 安装OpenCV4 在Windows系统安装OpenCV4 配置visual studio 2019 配置包含路径 验证配置结果 安装OpenCV4 OpenCV是一个基于BSD许可(开源) ...
- Java网关服务-AIO(三)
Java网关服务-AIO(三) 概述 前两节中,我们已经获取了body的总长度,剩下的就是读出body,处理请求 ChannelServerHandler ChannelServerHandler即从 ...
- Redis学习笔记(八)——持久化
一.介绍 Redis的所有的数据都存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(a ...
- 【转】Key Presses
FROM:http://lazyfoo.net/tutorials/SDL/04_key_presses/index.php Key Presses Last Updated 6/11/19 Xing ...
- JPA 相关API (一)
[Query 接口下的常用API] [API 测试类:Test_QueryAPI.java] 1 package org.zgf.jpa.entity; 2 3 import java.math.Bi ...
- 如何修改hosts并保存
Hosts文件用于本地调试,或手动设置一个域名应该被解析到哪个IP地址,在修改时会发现需要管理员权限才能修改保存,这个时候我们可以这样做 找到Hosts文件,将Hosts文件复制到桌面.(Window ...
- SourceTree安装及卸载
一.安装步骤 下载地址: 链接:https://pan.baidu.com/s/1K5ImZASuThJZoGLz6Ay_4g 提取码:hqkp 1. 点击安装包,点击下一步 2. 出现账户注册的页面 ...
- Redis常用命令(6)——SortedSet
ZADD 格式:ZADD key score member [[score member] [score member] ...] 作用:向有序集合key中插入一个或多个元素.如果元素已经存在,更新s ...