php用GD库给图片添加水印
php用GD库给图片添加文字水印,整个代码比较简单,DEMO如下:
<?php
/*打开图片*/
//1、配置图片路径
$src = "aeroplane.jpg";
//2、获取图片信息
$info = getimagesize($src);
//3、获取图片类型
$type = image_type_to_extension($info[2], false);
//4、在内存中创建一个和我们图像类型一样的图像
$func = "imagecreatefrom{$type}";
//5、把图片复制到我们的内存中
$image = $func($src);
/* 操作图片 */
//1、设置字体路径
$font = "STXINGKA.ttf";
//2、填写水印内容
$content = "你好 mooc";
//3、设置字体颜色和透明度
$color = imagecolorallocatealpha($image, 255, 255, 255, 50);
//4、写入文字
imagettftext($image, 60, 0, 60, 120, $color, $font, $content);
/* 输出图片 */
//1、浏览器输出
header("Content-type:" . $info['mime']);
$outputfunc = "image{$type}";
$outputfunc($image);
//2、保存图片
$outputfunc($image, "newimage." . $type);
/* 销毁图片 */
imagedestroy($image);
?>
图片水印也类似:
<?php
/*打开图片*/
//1、配置图片路径
$src = "aeroplane.jpg";
//2、获取图片信息
$info = getimagesize($src);
//3、获取图片类型
$type = image_type_to_extension($info[2], false);
//4、在内存中创建图像
$createImageFunc = "imagecreatefrom{$type}";
//5、把图片复制内存中
$image = $createImageFunc($src);
/*操作图片*/
//1、设置水印图片路径
$imageMark = "logo.png";
//2、获取水印图片基本信息
$markInfo = getimagesize($imageMark);
//3、获取水印图片类型
$markType = image_type_to_extension($markInfo[2], false);
//4、在内存创建图像
$markCreateImageFunc = "imagecreatefrom{$markType}";
//5、把水印图片复制到内存中
$water = $markCreateImageFunc($imageMark);
//特别处理,设置透明
$color=imagecolorallocate($water,255,255,255);
imagefill($water,0,0,$color);
imagecolortransparent($water,$color);
//6、合并图片
imagecopymerge($image, $water, 20, 30, 0, 0, $markInfo[0], $markInfo[1], 30);
//7、销毁水印图片
imagedestroy($water);
/* 输出图片 */
//1、浏览器输出
header("Content-type:" . $info['mime']);
$outputfunc = "image{$type}";
$outputfunc($image);
//2、保存图片
$outputfunc($image, "image_mark." . $type);
/* 销毁图片 */
imagedestroy($image);
?>
php用GD库给图片添加水印的更多相关文章
- php 简单的学习GD库绘制图片并传回给前端实现方式
1.基本的GD库绘制图片汇总 2.后台实现小案例 <?php // $img = imagecreatetruecolor(200,40); // var_dump($img); // 利用GD ...
- php课程 8-32 如何使用gd库进行图片裁剪和缩放
php课程 8-32 如何使用gd库进行图片裁剪和缩放 一.总结 一句话总结:图片缩放到图片裁剪就是改变原图截取的位置以及截取的宽高. 1.电商网站那么多的图片,如果全部加载卡得慢的很,所以他们是怎么 ...
- php使用GD库实现图片水印和缩略图——给图片添加文字水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- PHP面向对象——GD库实现图片水印和缩略图
今天的实现目标就是使用GD库完成对图片加水印和图 片缩略图两个功能 动身前逻辑准备 属性: 路径 功能: 构造方法 生成水印的方法 获取 图片信息 获取位置信息(123 456 789) 创建图片资源 ...
- php使用GD库实现图片水印和缩略图——封装成类
学完了如何使用GD库来实现对图片的各种处理,那么我们可以发现,不管哪种方法,都有相似之处,如果我们把这些相似的地方和不相似的地方都封装成类,这样就可以提升代码的速度,而且节省了很多时间,废话不多说,来 ...
- php使用GD库实现图片水印和缩略图——生成图片缩略图
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- php使用GD库实现图片水印和缩略图——给图片添加图片水印
今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...
- PHP 使用gd库压缩图片并生成新图片返回全路径
使用gd库前,先检查是否开启了gd库 phpinfo(); 如果在php配置信息里找到了gd库,那么就是开启了,没开启的自行百度如何开启php gd库 既然开启了gd库,那么直接再php里写入以下代码 ...
- 使用GD库做图片水印
png图片作为水印加到其他类型图片后,背景变黑色 原因: imagecopy函数拷贝时可以保留png图像的原透明信息,而imagecopymerge却不支持图片的本身的透明拷贝. 然后直接上代码: / ...
随机推荐
- Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired,
Did not receive a reply. Possible causes include: the remote application did not send a reply, the m ...
- hiho 第155周 任务分配
最小路径覆盖会超时: 贪心思路: 按照开始时间排序,然后根据结束时间,维护一个以结束时间的单调递增的队列,每次与最快结束的任务进行比较即可: /* #include <cstdio> #i ...
- 大整数乘法(POJ2389)
题目链接:http://poj.org/problem?id=2389 #include <stdio.h> #include <string.h> #define Max 1 ...
- Hangfire 在asp.net core环境的使用
hf被定义为分布式后台服务,更加类似job作业的服务做作业的插件有quartz.net,JobScheduler 等当然,都有一些分别和适用的场景.1.安装需要安装Hangfire.CoreHangf ...
- 数字图像处理学习笔记之一 DIP绪论与MATLAB基础
写在前面的话 数字图像处理系列的学习笔记是作者结合上海大学计算机学院<数字图像处理>课程的学习所做的笔记,使用参考书籍为<冈萨雷斯数字图像处理(第二版)(MATLAB版)>,同 ...
- c# 后台线程 访问前台控件并显示信息
//设置为后台线程 Thread th = new Thread(delegate() { append(); }); th.IsBackground = true; th.Start(); //在a ...
- mysql replace()用法
mysql replace实例说明: UPDATE tb1 SET f1=REPLACE(f1, 'abc', 'def'); 释:表tb1中字段f1中为abc的值更新为def.一般用于某字段中值存在 ...
- Python基础—11-面向对象(01)
面向对象 面向对象 与面向过程对比: 面向过程:数学逻辑的映射,学会做个好员工 面向对象:生活逻辑的映射,学会做个好领导 生活实例: 类: 人 手机 电脑 对象: 我的手机.女朋友的手机 你的那部T4 ...
- 【oracle使用笔记2】使用Oracle数据库遇到的若干问题总结
一. 关于Oracle 11g数据库在查询表中数据显示中文乱码问题 [描述]本人一开始使用的Oracle是11g版本的,用PLSQL一次查询表中的数据时出现了中文显示乱码,为此搜了许多解决办法,最终通 ...
- 关于 NSData 的数据类型(2进制,16进制之间)及深入剖析(转)
. NSData 与 NSString NSData-> NSString NSString *aString = [[NSString alloc initWithData:adataenco ...