织梦CMS调用漂亮的头条图片标题

时间:2014-09-10

 一直喜欢浏览一些大的门户网站,查阅新闻等。从来也没有注意过这些门户网站的设计风格什么的,但是今天一位朋友询问我,能不能在网站上用个漂亮的头条图片标题呢?就像人民网那样(如下图)。

 

可以有些朋友会说为什么要用图片做呢,我们直接可以用文字和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);   

    }   

}  

相关文章