以前曾收錄過這篇文章[Dedecms生成漂亮整齊的縮略圖],我做了下嘗試,生成縮略圖的時(shí)候還是會(huì)有問題。今天看到這個(gè)文章,做個(gè)補(bǔ)充。
勾選 “提取第一張圖片為縮略圖” 實(shí)際是將第一張圖當(dāng)作縮略圖 并沒有生成帶"_lit"的小圖
修改文件:\dede\action\article_add_action.php
先看原代碼
代碼如下:
//自動(dòng)獲取縮略圖
if($autolitpic==1 && $litpic==''){
$litpic = GetDDImgFromBody($body);
}
大概意思應(yīng)該就是“縮略圖=獲取圖像從主題內(nèi)容”
也就是上面說的實(shí)際是第一張?jiān)瓐D 這就是問題所在
參考了4.X里提取縮略圖代碼,更改為:
代碼如下:
//自動(dòng)獲取縮略圖-改
if($autolitpic==1 && $litpic==''){
$cfg_medias_dir = str_replace('/','\/',$cfg_medias_dir);
$picname = preg_replace("/.+?".$cfg_medias_dir."(.*)( |\"|').*$/isU",$cfg_medias_dir."$1",$body);
if(eregi("\.(jpg|gif|png)$",$picname)){
if(ereg("_lit\.",$picname)) $litpic = $picname;
else $litpic = GetDDImage('ddfirst',$picname,0);
}
}
同理\dede\action\article_eidt_action.php更改為:
代碼如下:
//自動(dòng)獲取縮略圖-改
if($autolitpic==1 && empty($litpic)){
$cfg_medias_dir = str_replace('/','\/',$cfg_medias_dir);
$picname = preg_replace("/.+?".$cfg_medias_dir."(.*)( |\"|').*$/isU",$cfg_medias_dir."$1",$body);
if(eregi("\.(jpg|gif|png)$",$picname)){
if(ereg("_lit\.",$picname)) $litpic = $picname;
else $litpic = GetDDImage('ddfirst',$picname,0);
}
}
然后將這兩個(gè)文件 復(fù)制覆蓋到\dede\下。
OK!這樣就能打到勾選“提取第一張...”生成縮略圖的目的了。
縮略圖變形 參考[Dedecms生成漂亮整齊的縮略圖]
需修改文件:\include\inc_photograph.php
找到:($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH); 共三處。
改為:($ni,$im,0,0,$src_X,$src_Y,$ftoW,$ftoH,$srcW,$srcH);
修改了縮圖函數(shù),就能在原圖中截取居中的、最大面積的符合自定義縮略圖長寬比列的一部分生成縮略圖。