规定区域内字体大小自适应php代码

规定区域内字体大小自适应php代码

代码1:

& lt; ?php//图像适合文本类0.1 ming0070913类ImageFitText{,公共美元字体、字形大小美元,美元的宽度、高度美元;,公共step_wrap美元,美元step_fontsize;,公共职能__construct(字体、step_wrap=1美元,美元step_fontsize=1) {,$ this→字体=$字体;,$ this→step_wrap=$ step_wrap> 1 ? $ step_wrap: 1;,$ this→step_fontsize=$ step_fontsize> 1 ? $ step_fontsize: 1;,}函数符合(宽度、高度,美元文本,美元字形大小,min_fontsize=5美元,美元min_wraplength=0) {,$ this→字形大?,$字形大小;,text_=美元文本;,而($ this→TextHeight (text_美元)在高度和美元,fontsize> min_fontsize美元),,字形大小-=这→美元step_fontsize;,而(($ this→TextWidth (text_美元)在美元宽度| | $ this→TextHeight (text_美元)在高度美元),,fontsize> min_fontsize美元){,,字形大小-=这→美元step_fontsize;,,wraplength=这→美元maxLen($文本);,,text_=美元文本;,,而($ this→TextWidth (text_美元)在宽度和美元,wraplength>美元;=$ min_wraplength + $ this→step_wrap) {,,wraplength -=这→美元step_wrap;,,美元text_=自动换行(文本、wraplength美元,“\ n”,真正的);,,//加快:,if ($ this→TextHeight (text_美元)在高度美元)休息;,,如果(wraplength<美元;=$ min_wraplength)休息;,,wraplength_=wraplength美元;,,(wraplength=装天花板美元wraplength/($ this→TextWidth (text_美元)/$宽度));,,wraplength=wraplength<美元;(min_wraplength +这→美元step_wrap) ? (min_wraplength +这→美元step_wrap): $ wraplength;,}大敌;},=$ $ this→宽度这→TextWidth ($ text_);,=$ $ this→高度这→TextHeight ($ text_);,返回数组(“字形大小”=祝辞字形大小美元,“文本”=祝辞text_美元,“宽度”=祝辞$ this→宽度,“高度”=祝辞$ this→高度);美元,}函数maxLen(文本){,行美元=爆炸(“\ n”, str_replace (“\ r ", ", $文本));,foreach($美元线行),,$ t []=strlen(线);,返回马克斯($ t);美元,}函数TextWidth(文本){,(t=p_w_picpathttfbbox美元这→字形大小,0,$ this→字体,文本美元);,返回t [2] - t美元[0];美元,}函数TextHeight(文本){,(t=p_w_picpathttfbbox美元这→字形大小,0,$ this→字体,文本美元);,返回$ t [1] - [7];}}?祝辞大敌;


代码2:


& lt; ?php//图像适合文本类0.1 ming0070913//示例文件包括“p_w_picpathfittext.class.php”;//设置://文本文本美元=" PHP是一种广泛使用的通用脚本语言,尤其适合于Web开发,可以嵌入到HTML。如果您是PHP和想要了解它是如何工作的,入门教程。之后,查看在线手册。”;//最大宽度宽度=200美元;,

//最大高度高度=100美元;,

//位置的文本和盒子x1=50美元;日元=50美元;,

//开始字体字形大?10美元;,

//最小字体大小。脚本将停止如果不能适应文本即使这个尺寸。min_fontsize=3美元;,

//最小包装每一行的长度。脚本将尝试另一个字体大小如果它甚至不能适应文本包装长度。min_wraplength=0;美元,

//字体字体=癮rial.ttf”;美元,

//框和文本之间的空间。独立的脚本,可以忽略填充=3美元;,

//如果脚本不能适应文本对某些包装长度,它将再次尝试包装长度与降低这个值。//降低精度,但会稍微加快这一进程。step_wrap=1美元;//如果脚本不能适应文本为特定字体大小,它将字体大小再试的降低这个值只

//它降低精度,但会稍微加快这一进程。step_fontsize=1美元;,

//创建一个p_w_picpath $ im=@p_w_picpathcreatetruecolor(宽+ x1 * 2美元,身高+ y1 * 2 + 80美元)或死亡(“不能初始化新GD p_w_picpath流”);//启动计时器$ time_start=microtime_float ();,

//类p_w_picpathfittext美元=new ImageFitText(字体、step_wrap美元,step_fontsize美元);//符合文本//它返回的结果数组与“字形大小”,“文本”、“宽”、“高”适合=p_w_picpathfittext→美元适合(宽度-填充* 2美元,高度-填充* 2美元,美元文本,字形大小美元,min_fontsize美元,美元min_wraplength);//停止计时器时间美元=圆(microtime_float ()——time_start美元,3);(白色=p_w_picpathcolorallocate美元即时通讯,255,255,255);//画一个框p_w_picpathrectangle (im, x1,美元日元美元,x1 +宽度,美元日元+高度,美元美元白色);//写文本,,,,,,+ 8因为文本将最初p_w_picpathttftext (im,适合美元“字形大小”,0,x1 +填充、美元日元+填充+ 8美元,美元的白色,字体美元,美元适合['文本']);//打印一些信息。null

规定区域内字体大小自适应php代码