php的gd库处理大的图片,PHP的gd库处理图片

gd库为图片加文字水印和图片输出

$number = $result['certno'];//设置水印内容

$file = './Uploads/certs/' . $number . '.jpg';

if(!is_file($file)){

$src = './template/public/img/zhengshu.jpg';//定义图片地址

$info = getimagesize($src);//获取图片信息

$type = image_type_to_extension($info[2], false);//通过编号获取图片类型

$fun = "imagecreatefrom".$type;//在内存中创建一样的图像

$image = $fun($src);//图片复制到内存

$font = './msyh.ttf';//设置字体路径

$fontbd = './msyhbd.ttf';//设置字体路径

$content = $result['authname'];//设置水印内容

$website = $result['auth_domains'];//设置水印内容

//求出水印内容在使用字体下在图片的四个边框的xy坐标

$version_fontarea1 = ImageTTFBBox(25,0,$fontbd,$version);

$content_fontarea1 = ImageTTFBBox(25,0,$font,$content);

$website_fontarea1 = ImageTTFBBox(12,0,$font,$website);

$width = $info[0];//获取图片宽度

//求出内容应该设置在图片中的位置(y左边我是自己一点点试的...x坐标是让水印内容两侧距离相等)

$version_x = ($width - ($version_fontarea1[2] - $version_fontarea1[0])) / 2;

$content_x = ($width - ($content_fontarea1[2] - $content_fontarea1[0])) / 2;

$website_x = ($width - ($website_fontarea1[2] - $website_fontarea1[0])) / 2;

$color = imagecolorallocatealpha($image, 75, 75, 75, 0);//设置颜色

imagettftext($image, 11, 0, 105, 80, $color, $font, $number);

imagettftext($image, 25, 0, $version_x, 350, $color, $fontbd, $version);

imagettftext($image, 25, 0, $content_x, 520, $color, $font, $content);

imagettftext($image, 12, 0, $website_x, 560, $color, $font, $website);

//输出图片

$fun = "image".$type;

$fun($image, $file , 80);

imagedestroy($image);

}

$data = file_get_contents($file);

代码中依然存在很大问题,因为这样的做法,意味着有多少个result,就会在文件夹中生成多少张图片。没有找到gd库直接从内存中获取图片内容的方法,迫不得已用这个方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dedecms模版php,dedecms专题模板怎么用

dedecms专题模板怎么用?DeDeCms的专题相关信息bbs上相对较少,之前查阅了很多资料都未找到其解决方案推荐学习:织梦cms无柰只有靠自己动手丰衣足食;在官方的版本上有这样的一段话:1、文章列表用ID1,ID2,ID3这样形式分开…

Windows中断那些事儿

搞内核研究的经常对中断这个概念肯定不陌生,经常我们会接触很多与中断相关的术语,按照软件和硬件进行分类: 硬件CPU相关: IRQ、IDT、cli&sti 软件操作系统相关: APC、DPC、IRQL 一直以来对中断这一部分内容弄的一知…

php值对象模式场景,php设计模式介绍之值对象模式第1/5页

例如:通常用一个对象描述一个日期、一个数字或者货币。日期、整数或美元的类定义是都是便于使用的、快捷、便于封装的,并且方便进行拷贝,相互比较,甚至是创建。 从表面上看,这些描述简单的对象很容易被执行&#xff1a…

5月17日 AJAX 之 XML

主页面&#xff1a; <head> <script src"../jquery-2.2.3.min.js"></script> </head><body> <select id"sel"></select> </body> <script type"text/javascript"> $(document).ready(fun…

oracle 修改字段长度 用时,Oracle修改字段长度以及计算天数

sql修改字段长度的语法&#xff1a;alter table 表名 modify 字段名 字段类型;sql修改字段长度的示例代码alter table qtline modify qtl_bidernote VARCHAR2(4000);标准SQL&#xff0c;对任何数据库都适用alter table fzrtmis.reporttemplate modify REPNAME varchar(100)&…

(1-1)文件结构的升级(Area和Filter知识总结) - ASP.NET从MVC5升级到MVC6

ASP.NET从MVC5升级到MVC6 总目录 MVC5项目结构 带有Areas和Filter的项目结构 一般来说&#xff0c;小的MVC项目是不考虑领域的&#xff0c;但是&#xff0c;如果是稍微复杂一点的项目&#xff0c;往往是需要领域这个概念的。 一个领域就是一个小型的MVC项目&#xff0c;所以领域…

oracle数据库存储结构语句,oracle基本语句(第五章、数据库逻辑存储结构管理)...

1、使用SYS用户以SYSDBA身份登录到SQL Plus&#xff0c;使用视图V$TABLESPACE查看表空间信息SELECT * FROM V$TABLESPACE;2、查看视图DBA_TABLESPACES查看所有表空间的属性和在线状态SELECT TABLESPACE_NAME, CONTENTS, STATUSFROMDBA_TABLESPACES;--表空间名&#xff0c;表空间…

重启模块与及关开邮件存储设置功能页面-PHP-shell-py

邮件系统几百台&#xff0c;每台负责 grep -P "^ip\d.\d." /home/mymail/newconf/hosts.conf -c465 每台机器负责启动的模块又是不一样的如&#xff1a; A机器&#xff1a; ProgramsList"1svr,2svr,3svr,4svr," b机器&#xff1a; ProgramsList"asvr,…

oracle 表达式1000,oracle环境下占用编号的方法报语法错误:ORA-01795: 列表中的最大表达式数为 1000...

oracle 环境下&#xff0c;调用方法NumberCodeGenerateManager.OcuppyModelNumberCodesAfterSaved(ObjectID, modelID, ds)进行编号占用。当DataSet的数据行数〉1000时&#xff0c;会报语法错误&#xff1a;ORA-01795: 列表中的最大表达式数为 1000。跟踪语句如下&#xff1a;u…

奋斗路上的励志

当初看蜘蛛侠印象最深的一句台词就是“你是怎么样的人取决于你选择做什么样的人”。 昨天的你&#xff0c;你不可能完全忘记&#xff0c;但是你知道你曾经有多可耻卑微&#xff0c;重要的是你要做什么样的人&#xff0c;明天你会是什么样的你&#xff0c;重在做好现在的你。 坚…

用IIS配置反向代理

https://natapp.cn/ http://blog.csdn.net/g2321514568/article/details/12406755 目标服务器&#xff1a;targetServer 配置反向代理的服务器&#xff1a;reveseProxServer 1、确定最终访问的网址&#xff1a;比如www.baidu.com 、www.csdn.net等等。 当然你也可以自己在targ…

oracle存储过程使用ftp,ASM存储FTP上传文件

引用SQL>execute dbms_xdb.sethttpport(8080);SQL>execute dbms_xdb.setftpport(2100);SQL>commit;检查端口是否开启引用SQL> select dbms_xdb.GETHTTPPORT() from dual;DBMS_XDB.GETHTTPPORT()----------------------8080SQL> select dbms_xdb.GETFTPPORT() fr…

Python学习笔记——基础篇【第六周】——hashlib模块

常用模块之hashlib模块  用于加密相关的操作&#xff0c;3.x里代替了md5模块和sha模块&#xff0c;主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 &#xff0c;MD5 算法 import md5 hash md5.new() hash.update(admin) print hash.hexdigest() MD5-废弃import shahash sha…

oracle数据库领域,菜鸟成长课程之《Oracle数据库职业直通车》,引领大家真正进入Oracle数据库领域...

课程简介&#xff1a;近年来&#xff0c;Oracle数据库无疑是全球数据库领域中的领航者&#xff0c; Oracle DBA的待遇节节攀升&#xff0c; 导致了许多人希望转入这个行业。而Oracle数据库又因它的庞大和复杂另很多人望而却步&#xff0c;找不到入门的捷径。本课程是专门为在校…

虚拟存储

为解决日益增长的内存需要&#xff0c;有以下几种解决办法&#xff1a; 1.覆盖&#xff1a; 将程序划分成几个模块&#xff0c;将没有调用关系的模块&#xff08;即不会同时运行的模块&#xff09;分成一组&#xff0c;其中每组所占的内存大小为组内所需内存最大的模块的内存&a…

oracle 12542,TNS-12542: TNS:address already in use

研发说无法访问数据库&#xff0c;数据库正常运行&#xff0c;那就可能是监听有问题&#xff0c;一波简单操作搞定。[oracleentegor-1 ~]$ lsnrctl startLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-AUG-2018 09:04:01Copyright (c) 1991, 2013, Oracle. All ri…

作为前端应当了解的Web缓存知识

缓存优点 通常所说的Web缓存指的是可以自动保存常见http请求副本的http设备。对于前端开发者来说&#xff0c;浏览器充当了重要角色。除此外常见的还有各种各样的代理服务器也可以做缓存。当Web请求到达缓存时&#xff0c;缓存从本地副本中提取这个副本内容而不需要经过服务器。…

怎么恢复oracle的包,【学习笔记】使用dbms_backup_restore包恢复数据库

天萃荷净使用dbms_backup_restore包恢复数据库Oracle提供了一个包:DBMS_BACKUP_RESTORE包是由dbmsbkrs.sql 和 prvtbkrs.plb 这两个脚本创建的.catproc.sql 脚本运行后会调用这两个包.所以是每个数据库都有的这个包是Oracle服务器和操作系统之间IO操作的接口.由恢复管理器直接调…

No module named 'urllib2'

import urllib2 response urllib2.urlopen(http://www.baidu.com/) html response.read() print html 报错 import urllib2ImportError: No module named urllib2 import urllib.request respurllib.request.urlopen(http://www.baidu.com) htmlresp.read() print(h…

oracle负数怎么比较大小,输出负数【oracle学习吧】_百度贴吧

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼题目&#xff1a;哪些选项输出一个负数&#xff1f;如果你确信以下都不对&#xff0c;那么请选E[sql]A DECLAREl_date2 DATE : date 2012-12-20;l_date1 DATE : l_date2 - 1;BEGINDBMS_OUTPUT.put_line (MONTHS_BETWEEN (l_date1, …