php实现在限定区域里自动调整字体大小的类实例,字体大小实例

本文实例讲述了php实现在限定区域里自动调整字体大小的类。分享给大家供大家参考。具体如下:

这里的php类imagefittext.class.php实现在限定的区域里自动调整字体大小的功能。

font = $font;

$this->step_wrap = $step_wrap>1?$step_wrap:1;

$this->step_fontsize = $step_fontsize>1?$step_fontsize:1;

}

function fit($width, $height, $text, $fontsize, $min_fontsize=5, $min_wraplength=0){

$this->fontsize = & $fontsize;

$text_ = $text;

while($this->TextHeight($text_)>$height && $fontsize>$min_fontsize)

$fontsize -= $this->step_fontsize;

while(($this->TextWidth($text_)>$width || $this->TextHeight($text_)>$height) && $fontsize>$min_fontsize){

$fontsize -= $this->step_fontsize;

$wraplength = $this->maxLen($text);

$text_ = $text;

while($this->TextWidth($text_)>$width && $wraplength>=$min_wraplength+$this->step_wrap){

$wraplength -= $this->step_wrap;

$text_ = wordwrap($text, $wraplength, "n", true);

//To speed up:

if($this->TextHeight($text_)>$height) break;

if($wraplengthTextWidth($text_)/$width));

$wraplength = $wraplengthstep_wrap)?($min_wraplength+$this->step_wrap):$wraplength;

}

}

$this->width = $this->TextWidth($text_);

$this->height = $this->TextHeight($text_);

return array("fontsize"=>$fontsize, "text"=>$text_, "width"=>$this->width, "height"=>$this->height);

}

function maxLen($text){

$lines = explode("n", str_replace("r", "", $text));

foreach($lines as $line)

$t[] = strlen($line);

return max($t);

}

function TextWidth($text){

$t = imagettfbbox($this->fontsize, 0, $this->font, $text);

return $t[2]-$t[0];

}

function TextHeight($text){

$t = imagettfbbox($this->fontsize, 0, $this->font, $text);

return $t[1]-$t[7];

}

}

?>

使用范例如下:

fit($width-$padding*2, $height-$padding*2, $text, $fontsize, $min_fontsize, $min_wraplength);

// Stop the timer

$time = round(microtime_float()-$time_start, 3);

$white = imagecolorallocate($im, 255, 255, 255);

// Draw a box

imagerectangle($im, $x1, $y1, $x1+$width, $y1+$height, $white);

// Write the text +8 because the text will move up originally

imagettftext($im, $fit['fontsize'], 0, $x1+$padding, $y1+$padding+8, $white, $font, $fit['text']);

// Print some info. about the text

imagestring($im, 5, $x1, $y1+$height+30, 'Fontsize : '.$fit['fontsize'], $white);

imagestring($im, 5, $x1, $y1+$height+45, 'Text Size : '.$fit['width']."x".$fit['height'], $white);

imagestring($im, 5, $x1, $y1+$height+60, 'Box Size : '.($width-$padding*2)."x".($height-$padding*2), $white);

imagestring($im, 5, $x1, $y1+$height+75, 'Time used : '.$time.'s', $white);

// Print the image

header ('Content-Type: image/png');

imagepng($im);

imagedestroy($im);

function microtime_float(){ // Timer

list($usec, $sec) = explode(" ", microtime());

return ((float)$usec + (float)$sec);

}

?>

希望本文所述对大家的php程序设计有所帮助。

www.bkjia.comtrueTechArticlephp实现在限定区域里自动调整字体大小的类实例,字体大小实例 本文实例讲述了php实现在限定区域里自动调整字体大小的类。分享给大家供…

php怎样实现表格自动缩放字体,php实现在限定区域里自动调整字体大小的类实例,字体大小实例_PHP教程...相关推荐

  1. 微信小程序:map地图自动缩放自适应大小

    文档: https://developers.weixin.qq.com/miniprogram/dev/api/media/map/wx.createMapContext.html https:// ...

  2. ios 自动缩小字体_CSS:禁用iPhone上字体大小的自动缩放

    如解释here,Apple iPhone(即Safari)在视区更改时(即,从纵向到横向或反之亦然)重新缩放字体大小.CSS:禁用iPhone上字体大小的自动缩放 接受的回答这个问题说,为了禁止这种行 ...

  3. Android TextView自动缩放字体

    Android TextView自动缩放字体 <TextViewandroid:layout_width="50dp"android:layout_height=" ...

  4. cdr 表格自动填充文字_操作基础知识Word文字编辑

    Office操作基础知识Word文字编辑 1.相应文件扩展名: Word文件扩展名.doc:Powerpoin文件扩展名.ppt:Frontpage文件扩展名.htm:Excel文件扩展名.xls:F ...

  5. 自动缩放文字的TextView

    需求:根据文字长度自动缩小文字大小 最近做项目遇到一个场景,在做类似淘宝选择商品数量的页面,点"+"数字增,点"-"数字减,想到一个问题,布局样式固定,暂时不做 ...

  6. 理工科Word论文排版(章节自动标号、公式自动标号、图片自动标号、表格自动标号、标号交叉引用、公式参数介绍等),持续更新

    最近在完成论文的写作,无论是硕博士的大论文还是日常发布的小论文,精美的排版都会让评阅人心情舒畅,一个良好的word模板也会让论文写作变得简单容易. 正所谓工欲善其事必先利其器,拿出半天的时间去制作一个 ...

  7. Word中给图片或表格自动编号

    当我们在写报告时遇到文中图片很多的情况,调整文章内容或者增删文档时需要对图片进行重新编号,这个过程非常让人头大.因此,我们可以通过给图片或者表格自动标号的方式,减少重复工作量. 目录 自动编号 引用图 ...

  8. python调整屏幕缩放比例_Matplotlib-固定x轴缩放比例和自动缩放y轴 - python

    我只想绘制部分数组,固定x部分,但让y部分自动缩放.我尝试如下所示,但是它不起作用. 有什么建议么? import numpy as np import matplotlib.pyplot as pl ...

  9. java 背景图片自适应_java 背景图片随窗口大小变化进行自动缩放及平铺 | 学步园...

    最近一直被这个问题困扰这,上网也搜了不少这方面的知识,发现很多人都说用reapint方法(很简单的)进行图片重绘就OK了(没源码),于是乎至今也没实现 但通过自己的摸索也确实学到了不少东东滴! 在看代 ...

最新文章

  1. golang image.image 转文件流_Kuiper 1.0.2 正式发布 超轻量 IoT 边缘流处理
  2. 完成端口模式下的高性能网络服务器【转】
  3. Day6: Linux基础片:文件压缩、Vim用法
  4. windows文件服务器双机热备_遇到ZFS文件系统如此棘手的问题,这种办法简单又高效!...
  5. Elasticsearch-检索进阶(银行测试数据)
  6. 神经网络如何学习的?
  7. ELK 构建 MySQL 慢日志收集平台详解
  8. 微信小程序|开发实战篇之一
  9. 互联网欺诈,金钱利益下的汩汩恶意
  10. 用户领域 API 监控和代码注入检测
  11. 【一天一个C++小知识】006. 浮点数在计算机内部的表示与转换
  12. Java开发支付宝支付功能
  13. linux 鼠标光标由箭头变成十字形恢复方法
  14. Zemax学习笔记(5)- 设计单透镜实例_2,分析
  15. 服务器有些系统更新不能卸载,微软 Win10 更新 KB4577586 发布:永久删除 Adobe Flash Player,补丁无法卸载...
  16. python死循环_Python for死循环
  17. 项目集锦 | 易基因DNA羟甲基化5hmC测序研究成果
  18. 基于51单片机来开发的智能感应开盖垃圾桶
  19. 咖啡在手,指数我有——指数咖啡
  20. 数据库基础及查询语句

热门文章

  1. 静态与实例变量的区别——(面试题)
  2. 手机计算机英语,计算机英语翻译
  3. 流程在团队管理中的作用
  4. 时间复杂度-线性对数时间nlogn的一些研究
  5. 功成身退:AMD Mantle不再优化了
  6. Hadoop高可用集群搭建-1、服务器等基础环境配置
  7. CentOS 7.0安装配置Vsftp服务器
  8. python监控某个程序_写一个python的服务监控程序
  9. kettle连接数据mysql查_Kettle连接MySQL报错的解决方法
  10. MATLAB学习笔记(十二)