PHP 彩色文字实现代码

最近流行彩字,下面是简单的实现方法:
一.彩字的简单实现


代码如下:

header("content-type: image/png");
$text = $_get['t'];
$font = 'stxingka.ttf'; //ttf字体
$fontsize = 30;
$size = imagettfbbox($fontsize, 0, $font, $text); //获得字体长宽范围
$dx = abs($size[2]-$size[0]) +10;
$dy = abs($size[5]-$size[3]);
//构建图像
$im = imagecreate($dx,$dy);
imagecolorallocate($im, 255,255, 255); //背景色
$fontcolor = imagecolorallocate($im, 255, 0, 0); //字体颜色
imagettftext($im, $fontsize, 0, 0, abs($size[5]), $fontcolor, $font, $text);
imagepng($im);
imagedestroy($im);

上面的程序只是表述了一些彩字的基本原理,要实现更复杂和美观的彩字,所要做的只是更换一下字体,改一下字体颜色,添加一些背景图,再考虑一下缓存等,方法也差不多,朋友们可以自己试试.
二.彩字应用
上面的程序生成的彩字是通过"?t=文字"来传递的,但需注意的是,这些文字最好用urlencode来编码,当然,长度也应该有限制,这不是本文讨论的范围.
另外,生成彩字的程序和传递文字的程序都使用utf-8编码,如果不是,手工转一下..
要使用彩字,只需要用<img src="color.php?t=xxx" />即可,其中,color.php为生成彩字的程序(即上面的程序),xxx为经urlencode编码的文字(用来生成彩字)
三.smarty插件
在smarty的plugins目录下新建一文件modifier.ubb.php,内容如下: 


代码如下:

function smarty_modifier_ubb($string){
$ubb = array(
'/\[b\](.+?)\[\/b\]/i', #加粗
'/\[url=(.+?)\](.+?)\[\/url\]/i', #url
'/\[colorfont\](.+?)\[\/colorfont\]/ie' #彩字,注意,要加e修饰符
);
$tohtml = array(
'<b>\\1</b>',
'<a href="\\1">\\2</a>',
'"<img src=\'color.php?t=".urlencode("\\1")."\'/>"'
);
//以上只是演ubb的实现,更多的ubb标签朋友们可以按方法自己实现,其中的color.php根椐实际去修改
return preg_replace($ubb,$tohtml,$string);
}

这样,要显示彩字,只需在内容中加入
[colorfont]文字[/colorfont]
显示时,在smarty模板中使用ubb修饰符即可,如{$contentubb}

(0)

相关推荐

  • PHP 彩色文字实现代码

    最近流行彩字,下面是简单的实现方法: 一.彩字的简单实现 复制代码 代码如下: header("content-type: image/png"); $text = $_get['t']; $font = 'stxingka.ttf'; //ttf字体 $fontsize = 30; $size = imagettfbbox($fontsize, 0, $font, $text); //获得字体长宽范围 $dx = abs($size[2]-$size[0]) +10; $dy = a

  • python在windows命令行下输出彩色文字的方法

    本文实例讲述了python在windows命令行下输出彩色文字的方法.分享给大家供大家参考.具体分析如下: 默认情况下python在控制台输出的文字信息都是黑白的,如果能将文字做成彩色的输出,输出效果会更完美,也很酷,不是吗,下面是一段演示代码,这段代码封装了一个color类用来输出带颜色的文字,只要调用该类里面的相关方法就可以了,非常简单. 复制代码 代码如下: #!/usr/bin/env python #encoding: utf-8 import ctypes STD_INPUT_HAN

  • Windows和Linux下Python输出彩色文字的方法教程

    前言 最近在项目中需要输出彩色的文字来提醒用户,以前写过,但是只能在win上面运行. 今天搜了下看有没有在win和Linux上通用的输出彩色文字的模块,结果发现没有,,于是就自己弄了一个,分享下,以后用的时候翻翻博客,方便别人也方便自己. win下输出彩色文字,网上有两种方法一种是用system执行命令来设置颜色,感觉还是不太好,用ctypes模块实现更好点. linux下设置颜色,网上只找到了一种方法,下面不废话了,直接贴下代码: 示例代码 import platform if 'Window

  • python通过colorama模块在控制台输出彩色文字的方法

    本文实例讲述了python通过colorama模块在控制台输出彩色文字的方法.分享给大家供大家参考.具体分析如下: colorama是一个python专门用来在控制台.命令行输出彩色文字的模块,可以跨平台使用,在windows下linux下都工作良好,如果你想让控制台的输出信息更漂亮一些,可以使用给这个模块. colorama官方地址:https://pypi.python.org/pypi/colorama 安装colorama模块 pip install colorama 使用范例 from

  • 用JS中split方法实现彩色文字背景效果实例

    先来看看实现效果图 效果实现步骤: 1.获取要用到的元素: 2.声明一个数组变量(arrColor)存放颜色值: 3.给按钮添加点击事件: 4.获取文本框的value值,并用split方法把文本框的字符串值转换成数组(arr)存放: 5.循环取出存数组(arr)中的值并添加上span标签: 6.设置span标签的背景色:从数组(arrColor)循环取值: 7.把设定好的内容添加到div中: 效果完整代码: <!doctype html> <html> <head> &

  • Python在cmd上打印彩色文字实现过程详解

    前言 在Windows上编写python程序时,有时候需要对输出的文字颜色进行设置,特别是日志显示,不同级别的日志设置不同的颜色进行展示可以直观查看.本文主要描述通过ctypes.windll.kernel32调用GetStdHandle()和SetConsoleTextAttribute()两个API实现来实现Windows控制台的彩色背景及彩色文字. 基本概念描述 首先分别介绍GetStdHandle()和SetConsoleTextAttribute()这两个API. (1) GetStd

  • 如何在Node和浏览器控制台中打印彩色文字

    这篇文章中,我们主要研究的是如何在Node中打印出彩色文字,浏览器的只是附带. 一.常用场景: 1.在Wepack的打包过程中,显示打包完成后,控制台输出了几行注目的彩色文字信息. 2.在cli工具中,提示的信息有时会附带红色或绿色的提示. 二.浏览器的彩色console 在浏览器中,要打印彩色的log很简单,如下: console.log('%c%s', 'color: red; font-size: 20px', 'red') // %c代表样式,%s代表字符串 // 样式设置后,后面的字符

  • 详解如何在PyCharm控制台中输出彩色文字和背景

    最近的话呢也是因为一些特殊的需求,所以要求在Pycharm控制台中输出彩色的文字和背景,也有同学问到我关于这个问题,之前百度其他人的关于这个操作,比较凌乱,那么我这里的话就写一篇博文来总结一下.其实的话呢,Python控制台中默认输出的字体应该是黑色,而背景呢则是白色. 那么,如何使PyCharm中输出的内容,有不同的背景色和字体颜色?其实非常的简单,我们只需要在print输出语句中进行一些简单的设置即可,在PyCharm控制台中设置字体和背景色,需要使用下面语法: \033[显示方式;前景色;

  • Python colorama 彩色打印实现代码

    目录 一.前言 二.print彩色打印 三.使用 Colorama 库 一.前言 构建命令行程序很酷:命令行可以按照我们的设定完成相应的工作,相比 GUI 界面程序,无需花费大量时间设计 GUI 界面.但要使命令行程序更吸引人,仅使用普通的打印功能是无法实现的. 一个很好的方案是使用 colorama 库.这使我们可以非常轻松地为终端上输出的字符串着色,并且改善程序的界面外观. 闲话少说,接下来让我们看看如何使用它吧! 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无

  • JS实现状态栏跑马灯文字效果代码

    本文实例讲述了JS实现状态栏跑马灯文字效果代码.分享给大家供大家参考,具体如下: 这款状态栏跑马灯,文字跑动的定义在数组内,自己可修改内容.现在的IE8貌似不兼容,有缺憾的代码,欢迎JS爱好者修正,修正请发回一份.状态栏为效果显示区. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-ztlpmd-txt-style-codes/ 具体代码如下: <HTML> <HEAD> <TITLE>间隔状态栏跑马灯</T

随机推荐