php文本转图片自动换行的方法

2015-01-24信息快讯网

通过判断字符串和截取字符串再拼接起来实现文本图片自动换行,以下贴出此代码

今天无意中浏览网面的时候发现一个长微博,它可以将文本转成png图片,于是乎就研究一下PHP文本转图片的方式,其实只要是用到了PHP的扩展库,GD库来生成图片,再通过图像函数生成,代码写出来后,发现如果文字太多了,图片就会超过屏幕的宽度,导致浏览器右拉条的出现,于是,想想有没有什么办法可以使图片能够自动换行,通过GG,发现了一篇文章,通过判断字符串和截取字符串再拼接起来实现文本图片自动换行,以下贴出此代码,以学习之中:

<?php
header ("Content-type: image/png");
mb_internal_encoding("UTF-8"); // 设置编码

function autowrap($fontsize, $angle, $fontface, $string, $width) { // 这几个变量分别是 字体大小, 角度, 字体名称, 字符串, 预设宽度 $content = "";

// 将字符串拆分成一个个单字 保存到数组 letter 中 for ($i=0;$i<mb_strlen($string);$i++) { $letter[] = mb_substr($string, $i, 1); }

foreach ($letter as $l) { $teststr = $content." ".$l; $testbox = imagettfbbox($fontsize, $angle, $fontface, $teststr); // 判断拼接后的字符串是否超过预设的宽度 if (($testbox[2] > $width) && ($content !== "")) { $content .= "\n"; } $content .= $l; } return $content; }

$bg = imagecreatetruecolor(300, 290); // 创建画布 $white = imagecolorallocate($bg, 255, 255, 255); // 创建白色 $text = "前段时间练习使用 PHP 的 GD 库时,为了文本的自动换行纠结了很久。虽然可以通过插入 \n 实现换行,但考虑到文本中既有中文又有英文,强制限定每多少个文字就换行的效果很差。后来终于找到了一个英文下的自动换行的方法,其大概原理是将空格作为分隔符,将字符串分割为一个个单词,然后再一个接一个地拼接在一起,判断其长度是否超过画布,若超过则换行再拼接,否则继续拼接。考虑到中文需要将每个文字都拆开,所以我进行了一点修改,完整代码如下。"; $text = autowrap(12, 0, "simsun.ttc", $text, 280); // 自动换行处理

// 若文件编码为 GB2312 请将下行的注释去掉 // $text = iconv("GB2312", "UTF-8", $text);

imagettftext($bg, 12, 0, 10, 30, $white, "simsun.ttc", $text); imagepng($bg); imagedestroy($bg); ?>

php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
浅析php中常量,变量的作用域和生存周期
php 删除目录下N分钟前创建的所有文件的实现代码
php中如何判断一个网页请求是ajax请求还是普通请求
php一些错误处理的方法与技巧总结
php读取图片内容并输出到浏览器的实现代码
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
php采集文章中的图片获取替换到本地(实现代码)
解析php下载远程图片函数 可伪造来路
基于PHP服务端图片生成缩略图的方法详解
解析php中两种缩放图片的函数,为图片添加水印
解析PHP处理换行符的问题 \r\n
php中将html中的br换行符转换为文本输入中的换行符
PHP中使用cURL实现Get和Post请求的方法
用Php编写注册后Email激活验证的实例代码
php 生成唯一id的几种解决方法
PHP Directory 函数的详解
PHP重定向的3种方式
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
php去除换行符的方法小结(PHP_EOL变量的使用)
php中使用preg_replace函数匹配图片并加上链接的方法
php中使用preg_match_all匹配文章中的图片
php代码中使用换行及(\n或\r\n和br)的应用
php图片加水印原理(超简单的实例代码)
php图片的裁剪与缩放生成符合需求的缩略图
php判断上传的Excel文件中是否有图片及PHPExcel库认识
PHP中替换换行符的几种方法小结
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
php替换超长文本中的特殊字符的函数代码
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
php 文本文件的读取效率
PHP程序开发范例学习之表单 获取文本框的值
©2014-2024 dbsqp.com