php分析图片水印,PHP开发的文字水印,缩略图,图片水印实现类与用法示例
本文实例讲述了PHP开发的文字水印,缩略图,图片水印实现类与用法。分享给大家供大家参考,具体如下:
1.实现类ImageToTest.class.php参考代码
class ImageToTest {
/**
* 图片的基本信息
*/
private $info;
private $image;
public function __construct($src){
$info = getimagesize($src);
$this->info = array(
'width'=> $info[0],
'height'=> $info[1],
'type'=> image_type_to_extension($info[2],false),
'mime'=>$info['mime']
);
$fun = "imagecreatefrom{$this->info['type']}";
$this->image = $fun($src);
}
/**
* 操作图片 (压缩)
*/
public function thumb($width,$height){
$image_thumb = imagecreatetruecolor($width,$height);
imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,
$this->info['width'],$this->info['height']);
imagedestroy($this->image);
$this->image = $image_thumb;
}
/**
* 操作图片(添加文字水印)
*/
public function fontMark($content,$font_url,$size,$color,$local,$angle){
$col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content);
}
/**
* 操作图片(添加水印图片)
*/
public function imageMark($source,$local,$alpha){
//1.获取水印图片的基本信息
$info2 = getimagesize($source);
//2.通过水印的图片编号来获取水印的图片类型
$type2 = image_type_to_extension($info2[2],false);
//3.在内存中创建一个和我们的水印图像一致的图像类型
$func2 = "imagecreatefrom{$type2}";
//4.把水印图片复制到内存中
$water = $func2($source);
//5.合并图片
imagecopymerge($this->image,$water,$local['x'],$local['y'],0,0,$info2[0],$info2[1],$alpha);
//6.销毁水印图片
imagedestroy($water);
}
/**
* 在浏览器中输出图片
*/
public function show(){
header("Content-type:".$this->info['mime']);
$funs = "image{$this->info['type']}";
$funs($this->image);
}
/**
* 把图片保存到硬盘里
*/
public function save($newName){
$funs = "image{$this->info['type']}";
$funs($this->image,'./outPut/'.$newName.'.'.$this->info['type']);
}
/**
* 销毁图片 使用析构函数
*/
public function __destruct()
{
imagedestroy($this->image);
}
}
2.测试参考代码
require_once('ImageToTest.class.php');
/*$src = './image/wbg.jpg';
$image = new ImageToTest($src);
$image->thumb(700,550);
$image->show();*/
/*$src2 = './image/wbg.jpg';
$content = 'SGC';
$font_url = './image/YGYcuhei.ttf';
$size = 33;
$color = array(
0=>2,
1=>222,
2=>222,
3=>60
);
$local = array(
'x'=>20,
'y'=>100
);
$angle = 10;
$image2 = new ImageToTest($src2);
$image2->fontMark($content,$font_url,$size,$color,$local,$angle);
$image2->show();
$image2->save('hahahah');*/
$src3 = './image/wbg.jpg';
$source = './image/water.jpg';
$local = array(
'x'=>20,
'y'=>100
);
$font_url = './image/YGYcuhei.ttf';
$size = 38;
$color = array(
0=>2,
1=>222,
2=>222,
3=>60
);
$alpha = 60;
$angle = 50;
$image3 = new ImageToTest($src3);
$image3->imageMark($source,$local,$alpha);
$image3->thumb(700,550);
$image3->fontMark('Hello',$font_url,$size,$color,$local,$angle);
$image3->show();
$image3->save('WAWAWAWAWA');
希望本文所述对大家PHP程序设计有所帮助。
php分析图片水印,PHP开发的文字水印,缩略图,图片水印实现类与用法示例相关推荐
- html如何批量替换图片,如何批量替换wps文字中的图片?
这篇文章是教大家如何批量替换wps文字中的图片?教程简单易学,有需要的小伙伴就赶紧和小编一起来学习一下吧. 在Wps文字文件中插入了40张图片,想替换其中的20张图片. 常见方法都是逐张替换,少量的图 ...
- php dimage加上域名,PHP全功能无变形图片裁剪操作类与用法示例
本文实例讲述了PHP全功能无变形图片裁剪操作类与用法.分享给大家供大家参考,具体如下: 如果需要图片裁剪,或生成缩略图,这个基本上没有问题,全部需要的功能都在里面,全部都是无变形的. 这里我们划分为四 ...
- HarmonyOS图片,HarmonyOS App开发造轮子--自定义圆形图片组件
一.背景 在采用Java配合xml布局编写鸿蒙app页面的时候,发现sdk自带的Image组件并不能将图片设置成圆形,反复了翻阅了官方API手册(主要查阅了Compont和Image相关的API),起 ...
- java 微信开发图片发送,微信开发?Java上传Base64图片
class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...
- IOS开发基础之截图、图片文字水印
IOS开发基础之截图.图片文字水印 项目源码在我的主页里面. // // ViewController.m // 31-屏幕截图 // // Created by 鲁军 on 2021/2/22. / ...
- Java给PDF添加图片水印,且可以文字定位
这两天公司开发需要对PDF增加特定图片,类似于电子印章效果,试了许多网上的方式,经过测试PDF只可以插入图片或者通过RSA实现专属签章,我觉得插入图片好用一些,效果如下: 这是定位了<盖章> ...
- 给图片添加文字(换行)水印
Android给图片添加半透明背景的水印 (水印带有半透明底色) 给图片添加文字(换行)水印 1.绘制富文本: /** * 绘制富文本* StaticLayout可实现换行* <p>* h ...
- java图片加文字水印_JAVA实现图片的修改,添加文字水印效果
JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...
- 黑科技编程开发,利用Python使图片完美去除水印
网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读.比如下面的图片就是在 pdf 文件上截取出来的. 安装模块 PIL:Python Imaging Library 是 python 上非常强 ...
最新文章
- decose oracle_oracle 内存与进程
- java基础之构造方法
- SQL Server DATEDIFF() 函数(SQL计算时间差)
- 发布 项目_第十八期科创基金项目发布会圆满结束
- 用java编写一个课表串口,安卓课程表源代码
- 【java】深入分析Java反射-动态代理 proxy
- Perl中判断数组或hash为空
- HDU2010 水仙花数【进制+入门】
- thinkphp [数据分页]
- 一篇文章讲清python开发必懂的8种数据结构
- python实战项目分析2—物流
- 外地人在上海浦东 身份证到期续办
- 个人信用报告,有这五种方式可查!
- windows server关闭系统自动更新
- xbox360 双65厚机自制系统无硬盘 U盘玩游戏方法
- 手机计算机藏应用,把隐私藏进计算器!这款功能强大的隐私保护软件,层层防护,怒赞...
- 腾讯QQ2004II Beta3火爆下载 可自定义头像
- 后台写入前台的日期错误,变成一串数字解决方案
- 大数据量(例如几十万或者几百万的量)怎么导入到excel中
- 电商后台:商品管理系统
热门文章
- c语言编程中tem代表什么意思,“CTEM”是“Conventional Transmission Electron Microscopy”的缩写,意思是“常规透射电子显微镜”...
- java list 多条件排序_java – 如何对arraylist执行一系列排序操作(多个排序条件)
- Spring Cloud Alibaba 之 服务通信 REST消息通信:如何使用 OpenFeign 简化服务间通信
- Elasticsearch之深入了解Doc Values 和 Fielddata
- Vue Router webpack
- Xcode7.1环境下上架iOS App到AppStore 流程 (3)
- android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约
- python加号换行,Python字符串拼接六种方法介绍
- php客服窗口,制作一个客服小界面
- sql 删除最低分数_一份虐你千百遍的SQL语句面试题,请笑纳