首页 > 业界动态 > 正文 >

dedecms生成图片形式的今日头条新闻

现在很多新闻网站的首页都有今日头条新闻,一般都是采用图片的形式来体现,美观漂亮大方,图片文字样式多种多样,这完全是文字无法相比的,虽然文字可以控制大小和颜色,但是无法做到那么细致,和控制文字的字体,类似这样的效果:

因此我们这里修改dedecms的代码,让它根据我们的字体需求来生成类似今日头条新闻的图片样式,实现图片替代文字的头条新闻效果。

第一步:打开\include\extend.func.php文件,在最后一行加上一个PHP类,是用来控制图片样式的

classDeDeTitle
  • {
  • var$text='网站头条';
  • var$bg='#FFFFFF';
  • var$color='#9c1000';
  • var$width=860;
  • var$height=45;
  • var$size=35;
  • var$font;
  • var$path;
  • function__csetruct($t)
  • {
  • if($t)
  • {
  • $this->text=$t;
  • }
  • $this->font=DEDEINC.'/data/fonts/STXINGKA.TTF';
  • }
  • functionDeDeTitle($t)
  • {
  • $this->__csetruct($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=strtotime(date('y-m-dH:i:s')).'.gif';
  • $path='/uploads/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);
  • }
  • }
  • 注意,这里有两个地方需要注意

    1头条图片字体的设置,$this->font=DEDEINC.'/data/fonts/STXINGKA.TTF';您可以把需要的字体样式文件放到这个目录下,并且命名为STXINGKA.TTF,只要字体名字保持一致即可。

    2头条图片命名和保存路径

    $name=strtotime(date('y-m-dH:i:s')).'.gif';以当前时间命名

    $path='/uploads/title/';保存路径在默认的/uploads/title/文件夹下面

    第二步:修改模板,在需要生成图片标题的模板里插入以下代码

    {dede:arclistrow='1'titlelen='40'flag='h'}
  • <ahref="[field:arcurl/]"title="[field:title/]">
  • [field:titlerunphp='yes']
  • $title=newDeDeTitle(@me);
  • $title->bg='#FFFFFF';
  • $title->color='#ef5c29';
  • $title->width=570;
  • $title->height=35;
  • $title->size=22;
  • @me=$title->Show();
  • [/field:title]
  • </a>
  • {/dede:arclist}

    解释一下,这里就是控制生成图片的样式的各种参数,$title->bg设置图片背景颜色,$title->color设置图片文字的颜色,$title->width这个很重要,这是设置头条图片的宽度,$title->height这个是设置头条图片的高度,$title->size这个明显就是设置头条图片的字体大小了,只要严格设置这几个不同的参数就能显示你所需求的头条图片样式,上面增加的PHP类文件里的各种参数只是个默认的参数无需修改,只要模板里修改了就不影响。

    这样生成后是不是感觉头条的图片样式更加好看了。

    头条图片案例下载

    【免责声明】 本站所有文章内容均为网络采集或手工转载稿件,如相关图片、字体、音频、视频等内容侵犯您的版权或著作权,请及时与本站联系删除稿件。联系方式:service@wxqj.net
    今年 我们看到许多这样的技术和小工具即将结束
    今年 我们看到许多这样的技术和小工具即将结束
    技术和小工具正涌入数字世界。今年,我们已经看到许多这样的技术和小工具走到了尽头。所有这些曾经在用户中非常流行。包括从谷歌收件箱到雅虎信使的一切。在...
    发布时间:2024-08-23 08:36 点击:437
    金士顿宣布推出其新系列金士顿FURYRAM内存
    金士顿宣布推出其新系列金士顿FURYRAM内存
    金士顿宣布推出其新系列金士顿FURYRAM内存,该系列由三种型号组成:FURYRenegade、FURYBeast和FURYImpact。这些内存专为所有游戏爱好者而设计,他们...
    发布时间:2024-08-23 08:31 点击:467
    iPad的板载功能是什么?如何使用Sidecar将iPad连接到Mac?
    iPad的板载功能是什么?如何使用Sidecar将iPad连接到Mac?
    了解iPad的板载功能是什么,以及如何使用Sidecar将iPad连接到Mac。如果你想清楚,可以得到一些关于iPad板载功能是什么,以及如何使用Sidecar将iPad连接到Ma...
    发布时间:2024-08-23 08:22 点击:373
    项目三所做的工作有助于振兴定制只读存储器社区
    项目三所做的工作有助于振兴定制只读存储器社区
    谷歌创建三重项目的努力将有助于振兴定制只读存储器社区。一些运行基于AOSP的只读存储器可能需要几周时间的设备可以以更少的工作量运行这种定制的只读存储器...
    发布时间:2024-08-23 08:13 点击:368
    adduplex:WP8.1市场份额超过WP8.0
    adduplex:WP8.1市场份额超过WP8.0
    微软从今年年中开始推出WindowsPhone8.1更新,已经超过了8.0的市场份额,成为领先版本。WP8.1为近一半的市场提供了力量,而WP7.x仍有16.6%。它所有的诺...
    发布时间:2024-08-23 08:08 点击:416