首页 > 业界动态 > 正文 >

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

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

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

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

  1. class DeDeTitle 
  2.     var $text = '网站头条'
  3.     var $bg = '#FFFFFF'
  4.     var $color = '#9c1000'
  5.     var $width = 860; 
  6.     var $height = 45; 
  7.     var $size = 35; 
  8.     var $font
  9.     var $path
  10.     function __csetruct($t
  11.     { 
  12.         if($t
  13.         { 
  14.             $this->text = $t
  15.         } 
  16.         $this->font = DEDEINC.'/data/fonts/STXINGKA.TTF';      
  17.     } 
  18.     function DeDeTitle($t
  19.     { 
  20.         $this->__csetruct($t); 
  21.     } 
  22.  
  23.     function TextConv() 
  24.     { 
  25.         global $cfg_soft_lang
  26.         if($cfg_soft_lang!='utf-8'
  27.         { 
  28.             return gb2utf8($this->text); 
  29.         } 
  30.         return $this->text; 
  31.     } 
  32.     function C($color,$rgb
  33.     {    
  34.         if(strlen($color)==4) 
  35.         { 
  36.             for($i=1;$i<4;$i++) 
  37.             { 
  38.                 $str .= str_repeat($color[$i],2); 
  39.             } 
  40.             $color = '#'.$str
  41.         } 
  42.         switch($rgb
  43.         { 
  44.             case 'R':    return hexdec(substr($color, 1, 2)); 
  45.             case 'B':    return hexdec(substr($color, 3, 2)); 
  46.             case 'G':    return hexdec(substr($color, 5, 2)); 
  47.         } 
  48.     } 
  49.     function Titlepath() 
  50.     { 
  51.         global $cfg_medias_dir
  52.         $name = strtotime(date('y-m-d H:i:s')).'.gif'
  53.         $path = '/uploads/title/'
  54.         if(!is_dir($path)) 
  55.         { 
  56.             CreateDir($path); 
  57.         } 
  58.         return $path.$name
  59.     } 
  60.     function Show() 
  61.     { 
  62.         if(!file_exists(DEDEROOT.$this->Titlepath())) 
  63.         { 
  64.             $this->Make(); 
  65.         } 
  66.         global $cfg_cmsurl
  67.         return  '<img src="'.$cfg_cmsurl.$this->Titlepath().'" />'
  68.     } 
  69.     function Make() 
  70.     { 
  71.         $image = imagecreatetruecolor($this->width,$this->height); 
  72.         $bg = ImageColorAllocate($image,$this->C($this->bg,'R'),$this->C($this->bg,'B'),$this->C($this->bg,'G')); 
  73.         $color = ImageColorAllocate($image,$this->C($this->color,'R'),$this->C($this->color,'B'),$this->C($this->color,'G')); 
  74.         ImageFilledRectangle($image,0,0,$this->width,$this->height,$bg); 
  75.         imagettftext($image,$this->size, 0, $this->size/2, ($this->height+$this->size)/2, $color$this->font,$this->TextConv()); 
  76.         imagegif($image,DEDEROOT.$this->Titlepath()); 
  77.         imagedestroy($image); 
  78.     } 
  79.  

注意,这里有两个地方需要注意

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

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

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

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

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

  1. {dede:arclist row='1' titlelen='40' flag='h'
  2. <a href="[field:arcurl/]" title="[field:title/]"> 
  3. [field:title runphp='yes'
  4. $title = new DeDeTitle(@me); 
  5. $title->bg = '#FFFFFF'
  6. $title->color = '#ef5c29'
  7. $title->width = 570
  8. $title->height = 35
  9. $title->size = 22
  10. @me=$title->Show(); 
  11. [/field:title] 
  12. </a> 
  13. {/dede:arclist} 

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

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

头条图片案例下载

【免责声明】 本站为非营利性网站,旨在传播正能量资讯。本站所有文章内容均为网络采集或手工转载稿件,如相关图片、字体、音频、视频等内容侵犯您的版权或著作权,请及时与本站联系删除稿件。联系方式:zaoanwang@qq.com
lol补丁包没有找到版本文件怎么办_lol补丁
lol补丁包没有找到版本文件怎么办_lol补丁
1、003010是美国Riot Games开发的3D大型竞技场Battle.net游戏。其主创团队由实力DOTA-Allstars的核心人物,以及暴雪等著名游戏公司的美工、程序、策划组成。它...
发布时间:2024-03-08 08:04 点击:424
微波炉和光波炉哪个好更实用_微波炉和光波炉
微波炉和光波炉哪个好更实用_微波炉和光波炉
1、摘要:光波烤箱和微波炉有什么区别?本发明内置光波发射源,可以巧妙利用光波和微波加热食物。微波是一种高频电磁波,利用电磁波产生的热量加热食物。今天,...
发布时间:2024-03-07 09:17 点击:288
finebi中文破解版 V5.1 免激活码版_finebi中文破解版 V5.1 免激活码版免费下载
finebi中文破解版 V5.1 免激活码版_finebi中文破解版 V5.1 免激活码版免费下载
finebi中文版是一款非常优秀的电脑数据分析软件。该软件有着高端的智能分析算法,我们可以根据表格轻松掌握销售目标,策划活动等,在管理和运营方面都可以全心...
发布时间:2024-03-07 09:12 点击:327
u9508保护壳厂家_u950 中兴
u9508保护壳厂家_u950 中兴
中兴通讯是中国著名的通信公司。中兴U950是中兴制造的智能手机产品。它于2012年11月上市。配备4.3英寸显示屏,分辨率为800*480像素,支持单卡和3G网络。是低端...
发布时间:2024-03-07 09:09 点击:379
联想一体机怎么样_联想的一体机到底怎么样
联想一体机怎么样_联想的一体机到底怎么样
1,联想的一体机到底怎么样?:产品方面,联想一体台式机产品具有独有的四大优势:首先,联想B、C两大主流系列产品通过了由国家电子计算机质量监督检验中心颁发...
发布时间:2024-03-07 09:05 点击:380