本文实例讲述了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开发的文字水印,缩略图,图片水印实现类与用法示例相关推荐

  1. html如何批量替换图片,如何批量替换wps文字中的图片?

    这篇文章是教大家如何批量替换wps文字中的图片?教程简单易学,有需要的小伙伴就赶紧和小编一起来学习一下吧. 在Wps文字文件中插入了40张图片,想替换其中的20张图片. 常见方法都是逐张替换,少量的图 ...

  2. php dimage加上域名,PHP全功能无变形图片裁剪操作类与用法示例

    本文实例讲述了PHP全功能无变形图片裁剪操作类与用法.分享给大家供大家参考,具体如下: 如果需要图片裁剪,或生成缩略图,这个基本上没有问题,全部需要的功能都在里面,全部都是无变形的. 这里我们划分为四 ...

  3. HarmonyOS图片,HarmonyOS App开发造轮子--自定义圆形图片组件

    一.背景 在采用Java配合xml布局编写鸿蒙app页面的时候,发现sdk自带的Image组件并不能将图片设置成圆形,反复了翻阅了官方API手册(主要查阅了Compont和Image相关的API),起 ...

  4. java 微信开发图片发送,微信开发?Java上传Base64图片

    class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...

  5. IOS开发基础之截图、图片文字水印

    IOS开发基础之截图.图片文字水印 项目源码在我的主页里面. // // ViewController.m // 31-屏幕截图 // // Created by 鲁军 on 2021/2/22. / ...

  6. Java给PDF添加图片水印,且可以文字定位

    这两天公司开发需要对PDF增加特定图片,类似于电子印章效果,试了许多网上的方式,经过测试PDF只可以插入图片或者通过RSA实现专属签章,我觉得插入图片好用一些,效果如下: 这是定位了<盖章> ...

  7. 给图片添加文字(换行)水印

    Android给图片添加半透明背景的水印 (水印带有半透明底色) 给图片添加文字(换行)水印 1.绘制富文本: /** * 绘制富文本* StaticLayout可实现换行* <p>* h ...

  8. java图片加文字水印_JAVA实现图片的修改,添加文字水印效果

    JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...

  9. 黑科技编程开发,利用Python使图片完美去除水印

    网上下载的 pdf 学习资料有一些会带有水印,非常影响阅读.比如下面的图片就是在 pdf 文件上截取出来的. 安装模块 PIL:Python Imaging Library 是 python 上非常强 ...

最新文章

  1. decose oracle_oracle 内存与进程
  2. java基础之构造方法
  3. SQL Server DATEDIFF() 函数(SQL计算时间差)
  4. 发布 项目_第十八期科创基金项目发布会圆满结束
  5. 用java编写一个课表串口,安卓课程表源代码
  6. 【java】深入分析Java反射-动态代理 proxy
  7. Perl中判断数组或hash为空
  8. HDU2010 水仙花数【进制+入门】
  9. thinkphp [数据分页]
  10. 一篇文章讲清python开发必懂的8种数据结构
  11. python实战项目分析2—物流
  12. 外地人在上海浦东 身份证到期续办
  13. 个人信用报告,有这五种方式可查!
  14. windows server关闭系统自动更新
  15. xbox360 双65厚机自制系统无硬盘 U盘玩游戏方法
  16. 手机计算机藏应用,把隐私藏进计算器!这款功能强大的隐私保护软件,层层防护,怒赞...
  17. 腾讯QQ2004II Beta3火爆下载 可自定义头像
  18. 后台写入前台的日期错误,变成一串数字解决方案
  19. 大数据量(例如几十万或者几百万的量)怎么导入到excel中
  20. 电商后台:商品管理系统

热门文章

  1. c语言编程中tem代表什么意思,“CTEM”是“Conventional Transmission Electron Microscopy”的缩写,意思是“常规透射电子显微镜”...
  2. java list 多条件排序_java – 如何对arraylist执行一系列排序操作(多个排序条件)
  3. Spring Cloud Alibaba 之 服务通信 REST消息通信:如何使用 OpenFeign 简化服务间通信
  4. Elasticsearch之深入了解Doc Values 和 Fielddata
  5. Vue Router webpack
  6. Xcode7.1环境下上架iOS App到AppStore 流程 (3)
  7. android区块链 钱包_区块链研究实验室|从Android调用区块链智能合约
  8. python加号换行,Python字符串拼接六种方法介绍
  9. php客服窗口,制作一个客服小界面
  10. sql 删除最低分数_一份虐你千百遍的SQL语句面试题,请笑纳