POST TIME:2020-03-28 21:58
一直喜欢浏览一些大的门户网站,查阅新闻等。从来也没有注意过这些门户网站的设计风格什么的,但是今天一位朋友询问我,能不能在网站上用个漂亮的头条图片标题呢?就像人民网那样(如下图)。
可以有些朋友会说为什么要用图片做呢,我们直接可以用文字和css做啊!但有时有一点要提醒大家,有时我们做标题时需要要一些字体特效,可是我们知道并不是每个人的电脑都安装有这些字体的。那么织梦模板可以生成这样的标题吗?其实还是很简单的,下面是我的实现方法。
首先上传字体文件上传到include/data/fonts/下,并命名为 STXINGKA.TTF (字体下载),这个是用于生成标题图片的字体的。当然,你也可以自己定义更漂亮的字体,但字体必须命名为STXINGKA.TTF。
打开include/extend.func.php (注意:本文件为自定义函数接口,如果你没有这个文件,请自己创建一个),在最后面的?>的前面以上开始插入以下代码:
classDeDeTitle
{
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';
}
functionDeDeTitle($t)
{
$this->__construct($t);
}
functionTextConv()
{
global$cfg_soft_lang;
if($cfg_soft_lang!='utf-8')
{
returngb2utf8($this->text);
}
return$this->text;
}
functionC($color,$rgb)
{
if(strlen($color)==4)
{
for($i=1;$i<4;$i++)
{
$str.=str_repeat($color[$i],2);
}
$color='#'.$str;
}
switch($rgb)
{
case'R':returnhexdec(substr($color,1,2));
case'B':returnhexdec(substr($color,3,2));
case'G':returnhexdec(substr($color,5,2));
}
}
functionTitlepath()
{
global$cfg_medias_dir;
$name=GetPinyin($this->text).'.gif';
$path=$cfg_medias_dir.'/title/';
if(!is_dir($path))
{
CreateDir($path);
}
return$path.$name;
}
functionShow()
{
if(!file_exists(DEDEROOT.$this->Titlepath()))
{
$this->Make();
}
global$cfg_cmsurl;
return'<imgsrc="'.$cfg_cmsurl.$this->Titlepath().'"/>';
}
functionMake()
{
$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);
}
}
下一篇:织梦CMS实现复制文章加出处信息