DedeCMS 5.1 版縮略圖修改補(bǔ)充

字號(hào):


    以前曾收錄過這篇文章[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ù),就能在原圖中截取居中的、最大面積的符合自定義縮略圖長(zhǎng)寬比列的一部分生成縮略圖。