# DedeCMS缩略图如何自动裁剪自动适应比例

*Published:* 2023-07-12
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年7月12日，已超过 180天没有更新



dede默认只生成一个规格大小的[缩略图](https://www.xarjtc.com/tag/%e7%bc%a9%e7%95%a5%e5%9b%be "查看缩略图此标签更多文章")，而往往在一个站不同页面内需要的缩略图大小不一致，比例不一致，这就造成了缩略图不清晰，失真，下面提供的方法就解决了这个问题。

一、要获得清晰的缩略图就要有足够大的图片并准确的剪裁，而下面的方法就是根据缩略图来进行剪裁的(因原图部分网站有水印)，所以就必须要保证原来的缩略图足够大，所以要进行一下设置：系统-附件设置，把缩略图默认宽度、默认高度设为大于等于你全站所有调用缩略图的最大尺寸，手工剪裁也请剪裁得足够大(不需要手工剪裁了)

二、打开include/extend.func.php 在\*\*\*后一个 ?&gt; 前加入以下代码

> ```php
> <span class="hljs-comment">/***
>  * 长宽高等比例自适应裁剪缩略图
>  * [field:litpic function='thumb(<span class="hljs-doctag">@me</span>,300,200,false)'/]
> ***/</span>
> 
> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">thumb</span><span class="hljs-params">($imgurl, $width, $height, $bg = true)</span>
> </span>{
>     <span class="hljs-keyword">global</span> $cfg_mainsite,$cfg_multi_site;
>     $thumb = eregi(<span class="hljs-string">"http://"</span>,$imgurl)?str_replace($cfg_mainsite,<span class="hljs-string">''</span>,$imgurl):$imgurl;
>     <span class="hljs-keyword">list</span>($thumbname,$extname) = explode(<span class="hljs-string">'.'</span>,$thumb);
>     $newthumb = $thumbname.<span class="hljs-string">'_'</span>.$width.<span class="hljs-string">'_'</span>.$height.<span class="hljs-string">'.'</span>.$extname;
>     <span class="hljs-keyword">if</span>(!$thumbname || !$extname || !file_exists(DEDEROOT.$thumb)) <span class="hljs-keyword">return</span> $imgurl;
>     <span class="hljs-keyword">if</span>(!file_exists(DEDEROOT.$newthumb))
>     {
>         <span class="hljs-keyword">include_once</span> DEDEINC.<span class="hljs-string">'/image.func.php'</span>;
>         <span class="hljs-keyword">if</span>($bg==<span class="hljs-keyword">true</span>)
>         {
>             ImageResizeNew(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
>         }
>         <span class="hljs-keyword">else</span>
>         {
>             ImageResize(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
>         }
>     }
>     <span class="hljs-keyword">return</span> $cfg_multi_site==<span class="hljs-string">'Y'</span>?$cfg_mainsite.$newthumb:$newthumb;
> }
> ```