织梦dedecms调用漂亮的头条图片标题?
一直喜欢浏览一些大的门户网站,查阅新闻等。从来也没有注意过这些门户网站的设计风格什么的,但是今天一位朋友询问我,能不能在网站上用个漂亮的头条图片标题呢?就像人民网那样(如下图)。
可以有些朋友会说为什么要用图片做呢,我们直接可以用文字和css做啊!但有时有一点要提醒大家,有时我们做标题时需要要一些字体特效,可是我们知道并不是每个人的电脑都安装有这些字体的。那么织梦模板可以生成这样的标题吗?其实还是很简单的,下面是我的实现方法。
一、实现方法
1)标题图片字体定义
首先上传字体文件上传到include/data/fonts/下,并命名为 STXINGKA.TTF (字体下载),这个是用于生成标题图片的字体的。当然,你也可以自己定义更漂亮的字体,但字体必须命名为STXINGKA.TTF。
2)标题图片函数文件
打开include/extend.func.php (注意:本文件为自定义函数接口,如果你没有这个文件,请自己创建一个),在最后面的?>的前面以上开始插入以下代码:
class DeDeTitle
{
var $text = '暂无标题';
var $bg = '#F0F0F0';
var $color = '#30F';
var $width = 500;
var $height = 50;
var $size = 30;
var $font;
var $path;
function __construct($t)
{
if($t)
{
$this->text = $t;
}
$this->font = DEDEINC.'/data/fonts/STXINGKA.TTF';
}
function DeDeTitle($t)
{
$this->__construct($t);
}
function TextConv()
{
global $cfg_soft_lang;
if($cfg_soft_lang!='utf-8')
{
return gb2utf8($this->text);
}
return $this->text;
}
function C($color,$rgb)
{
if(strlen($color)==4)
{
for($i=1;$i<4;$i++)
{
$str .= str_repeat($color[$i],2);
}
$color = '#'.$str;
}
switch($rgb)
{
case 'R': return hexdec(substr($color, 1, 2));
case 'B': return hexdec(substr($color, 3, 2));
case 'G': return hexdec(substr($color, 5, 2));
}
}
function Titlepath()
{
global $cfg_medias_dir;
$name = GetPinyin($this->text).'.gif';
$path = $cfg_medias_dir.'/title/';
if(!is_dir($path))
{
CreateDir($path);
}
return $path.$name;
}
function Show()
{
if(!file_exists(DEDEROOT.$this->Titlepath()))
{
$this->Make();
}
global $cfg_cmsurl;
return '<img src="'.$cfg_cmsurl.$this->Titlepath().'"/>';
}
function Make()
{
$image = imagecreatetruecolor($this->width,$this->height);
$bg = ImageColorAllocate($image,$this->C($this->bg,'R'),$this->C($this->bg,'B'),$this->C($this->bg,'G'));
$color = ImageColorAllocate($image,$this->C($this->color,'R'),$this->C($this->color,'B'),$this->C($this->color,'G'));
ImageFilledRectangle($image,0,0,$this->width,$this->height,$bg);
imagettftext($image,$this->size, 0, $this->size/2, ($this->height+$this->size)/2, $color, $this->font,$this->TextConv());
imagegif($image,DEDEROOT.$this->Titlepath());
imagedestroy($image);
}
}
(责任编辑:最模板) |