php 生成文字png图片的代码


Posted in PHP onApril 17, 2011
<? 
/* 
php生成文字png图片,可以使用如下方式调用函数: 
http://www.yourdomian.com/text_png.php3?msg=helloworld+class&rot=15&size=48&font=fonts/ARIAL.TTF 
*/ 
Header("Content-type: image/png"); 
class textPNG { 
var $font = 'fonts/TIMES.TTF'; //默认字体. 相对于脚本存放目录的相对路径. 
var $msg = "undefined"; // 默认文字. 
var $size = 24; 
var $rot = 0; // 旋转角度. 
var $pad = 0; // 填充. 
var $transparent = 1; // 文字透明度. 
var $red = 0; // 在黑色背景中... 
var $grn = 0; 
var $blu = 0; 
var $bg_red = 255; // 将文字设置为白色. 
var $bg_grn = 255; 
var $bg_blu = 255; 
function draw() { 
$width = 0; 
$height = 0; 
$offset_x = 0; 
$offset_y = 0; 
$bounds = array(); 
$image = ""; 
// 确定文字高度. 
$bounds = ImageTTFBBox($this->size, $this->rot, $this->font, "W"); 
if ($this->rot < 0) { 
$font_height = abs($bounds[7]-$bounds[1]); 
} else if ($this->rot > 0) { 
$font_height = abs($bounds[1]-$bounds[7]); 
} else { 
$font_height = abs($bounds[7]-$bounds[1]); 
} 
// 确定边框高度. 
$bounds = ImageTTFBBox($this->size, $this->rot, $this->font, $this->msg); 
if ($this->rot < 0) { 
$width = abs($bounds[4]-$bounds[0]); 
$height = abs($bounds[3]-$bounds[7]); 
$offset_y = $font_height; 
$offset_x = 0; 
} else if ($this->rot > 0) { 
$width = abs($bounds[2]-$bounds[6]); 
$height = abs($bounds[1]-$bounds[5]); 
$offset_y = abs($bounds[7]-$bounds[5])+$font_height; 
$offset_x = abs($bounds[0]-$bounds[6]); 
} else { 
$width = abs($bounds[4]-$bounds[6]); 
$height = abs($bounds[7]-$bounds[1]); 
$offset_y = $font_height;; 
$offset_x = 0; 
} 
$image = imagecreate($width+($this->pad*2)+1,$height+($this->pad*2)+1); 
$background = ImageColorAllocate($image, $this->bg_red, $this->bg_grn, $this->bg_blu); 
$foreground = ImageColorAllocate($image, $this->red, $this->grn, $this->blu); 
if ($this->transparent) ImageColorTransparent($image, $background); 
ImageInterlace($image, false); 
// 画图. 
ImageTTFText($image, $this->size, $this->rot, $offset_x+$this->pad, $offset_y+$this->pad, $foreground, $this->font, $this->msg); 
// 输出为png格式. 
imagePNG($image); 
} 
} 
$text = new textPNG; 
if (isset($msg)) $text->msg = $msg; // 需要显示的文字 
if (isset($font)) $text->font = $font; // 字体 
if (isset($size)) $text->size = $size; // 文字大小 
if (isset($rot)) $text->rot = $rot; // 旋转角度 
if (isset($pad)) $text->pad = $pad; // padding 
if (isset($red)) $text->red = $red; // 文字颜色 
if (isset($grn)) $text->grn = $grn; // .. 
if (isset($blu)) $text->blu = $blu; // .. 
if (isset($bg_red)) $text->bg_red = $bg_red; // 背景颜色. 
if (isset($bg_grn)) $text->bg_grn = $bg_grn; // .. 
if (isset($bg_blu)) $text->bg_blu = $bg_blu; // .. 
if (isset($tr)) $text->transparent = $tr; // 透明度 (boolean). 
$text->draw(); 
?>
PHP 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
PHPWind 发帖回帖Api PHP版打包下载
Feb 08 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
PHP生成唯一订单号
Jul 05 PHP
PHP实现的浏览器检查类
Apr 11 PHP
基于php实现的验证码小程序
Dec 13 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 PHP
适用于php-5.2 的 php.ini 中文版[金步国翻译]
Apr 17 #PHP
php编写一个简单的路由类
Apr 13 #PHP
php 求质素(素数) 的实现代码
Apr 12 #PHP
php 5.3.5安装memcache注意事项小结
Apr 12 #PHP
php处理json时中文问题的解决方法
Apr 12 #PHP
php 面向对象的一个例子
Apr 12 #PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 #PHP
You might like
PHP常用代码
2006/11/23 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
2019/01/15 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
Python操作CouchDB数据库简单示例
2015/03/10 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
python图像处理之反色实现方法
2015/05/30 Python
以windows service方式运行Python程序的方法
2015/06/03 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
解析Python的缩进规则的使用
2019/01/16 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
公务员职务工作的自我评价
2013/11/01 职场文书
学院书画协会部门岗位职责
2013/12/01 职场文书
行政专员岗位职责
2014/01/02 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2014年宣传工作总结
2014/11/18 职场文书
护理工作个人总结
2015/03/03 职场文书
事业单位工作人员岗前培训心得体会
2016/01/08 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
Python标准库pathlib操作目录和文件
2021/11/20 Python